note_6:vue-resource的坑

本文详细介绍了Vue项目中使用vue-resource处理GET、POST、DELETE及PUT请求的方法,包括跨域问题解决方案、请求参数格式规范等内容,并提供了Postman工具的使用指南。

vue-resource的坑


参考


目录


一、跨域问题

  • 每一次请求,服务器一直返500或者405之类的错误码,后来才发现是跨域问题。
  • 针对vue的跨域问题,有一种可行的方法是修改proxy table,然而后来我才发现windows和mac版的vue-cli的编译文件里写的东西是不一样的,所以proxy table的位置也是不一样的。
  • 如果是windows的,要在/config/index.js里面找到proxy-table并进行如下修改

这里写图片描述

  • 如果是mac的,则在/build/webpack.dev.conf.js中找到proxy-table并进行修改。可以参照:vue下跨域设置

二、请求参数格式

1. GET请求

  • 当get请求没有参数的时候,可以直接写
// '/api'就是前面修改proxy-table以后代替的http://kangblog
var apiStr = '/api/users'
this.$http.get(apiStr).then(res=>{
    console.log(res)
}).catch(err=>{
    console.log(err)
})
  • 当get请求有参数时,如果参数格式写不对,系统会报500服务器内部错误
  • 参数传递的时候,要在对象前面加上params:,并且要用{}括起来。
// 假设要传递对象{"Id": int}
var indexer = parseInt(idx)

// '/api'就是前面修改proxy-table以后代替的http://kangblog
var apiStr = '/api/users'
this.$http.get(apiStr, {params:{Id: indexer}}).then(res=>{
    console.log(res)
}).catch(err=>{
    console.log(err)
})

2. POST请求

  • 参数问题同上,如果没有写对,也是会引发系统报错
  • POST写的和GET有些不同,POST是直接传对象,也不用params:
//  假设要传递一个对象
var obj = {}
obj.Id = parseInt(idx)
obj.Name = 'LiHua'
obj.Pwd = '123456'

// '/api'就是前面修改proxy-table以后代替的http://kangblog
var apiStr = '/api/users'
this.$http.post(apiStr, obj).then(res=>{
    console.log(res)
}).catch(err=>{
    console.log(err)
})

不知道是什么原因,我和我同学用emualteJSON: true时都没有成功,还是报错,不管是post还是get的请求都是这样。

3. DELETE请求

  • Delete请求的话,要在参数前面加上body:,外面也是要用{}括起来
// 假设要删除某段数据,需要传递对象{"Id": int}
var indexer = parseInt(id)

// '/api'就是前面修改proxy-table以后代替的http://kangblog
var apiStr = '/api/users'
this.$http.delete(apiStr, {body: {Id: indexer}}).then(res=>{
    console.log(res)
}).catch(err=>{
    console.log(err)
})

4. PUT请求

  • put传参数的时候,什么都不用管,可以像正常那样用{}直接包着里面的内容传递
var indexer = parseInt(idx)

// '/api'就是前面修改proxy-table以后代替的http://kangblog
var apiStr = '/api/users'
this.$http.put(apiStr, {Id: indexer, Name: "LiHua", Password: "123456"}).then(res=>{
    console.log(res)
}).catch(err=>{
    console.log(err)
})

三、POSTMAN

  • 可以去postman官网下载软件,也可以去谷歌应用商店下载插件
  • 因为不知道插件怎么用,所以直接装的软件
  • 软件登录的时候需要翻墙,登陆过之后就不需要翻了
  • postman可以用来测试前面说的那几种请求,看看后台有没有反应

Failed to load resource: the server responded with a status of 404 () 44.9c7a8365.js:1 获取产品类型失败: de (匿名) @ 44.9c7a8365.js:1 product-data-entry:1 Failed to load resource: the server responded with a status of 404 () 44.9c7a8365.js:1 数据获取失败: de {message: 'Network Error', name: 'AxiosError', code: 'ERR_NETWORK', config: {…}, request: XMLHttpRequest, …} fetchTableData @ 44.9c7a8365.js:1 :8090/api/product-data-zs?page=0&size=10000:1 Failed to load resource: net::ERR_CONNECTION_REFUSED NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 23-Jun-2025 19:20:45.438 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.106 23-Jun-2025 19:20:45.442 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Jun 5 2025 19:02:30 UTC 23-Jun-2025 19:20:45.443 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.106.0 23-Jun-2025 19:20:45.443 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 10 23-Jun-2025 19:20:45.443 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0 23-Jun-2025 19:20:45.443 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64 23-Jun-2025 19:20:45.444 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\1\.jdks\openjdk-23.0.1 23-Jun-2025 19:20:45.444 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 23.0.1+11-39 23-Jun-2025 19:20:45.444 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Oracle Corporation 23-Jun-2025 19:20:45.444 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: D:\apache-tomcat-9.0.106 23-Jun-2025 19:20:45.445 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\apache-tomcat-9.0.106 23-Jun-2025 19:20:45.471 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED 23-Jun-2025 19:20:45.471 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 23-Jun-2025 19:20:45.471 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 23-Jun-2025 19:20:45.472 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED 23-Jun-2025 19:20:45.473 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED 23-Jun-2025 19:20:45.473 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 23-Jun-2025 19:20:45.474 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 23-Jun-2025 19:20:45.474 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=D:\apache-tomcat-9.0.106\conf\logging.properties 23-Jun-2025 19:20:45.475 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 23-Jun-2025 19:20:45.475 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djdk.tls.ephemeralDHKeySize=2048 23-Jun-2025 19:20:45.476 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 23-Jun-2025 19:20:45.477 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dsun.io.useCanonCaches=false 23-Jun-2025 19:20:45.477 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dignore.endorsed.dirs= 23-Jun-2025 19:20:45.478 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=D:\apache-tomcat-9.0.106 23-Jun-2025 19:20:45.478 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=D:\apache-tomcat-9.0.106 23-Jun-2025 19:20:45.479 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=D:\apache-tomcat-9.0.106\temp 23-Jun-2025 19:20:45.552 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。 23-Jun-2025 19:20:45.553 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。 23-Jun-2025 19:20:45.555 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true] 23-Jun-2025 19:20:45.588 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024] 23-Jun-2025 19:20:46.009 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8082"] 23-Jun-2025 19:20:46.037 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[978]毫秒内初始化 23-Jun-2025 19:20:46.088 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina] 23-Jun-2025 19:20:46.088 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.106] 23-Jun-2025 19:20:46.144 信息 [main] org.apache.catalina.startup.HostConfig.deployWAR 正在部署web应用程序存档文件[D:\apache-tomcat-9.0.106\webapps\demo-0.0.1-SNAPSHOT.war] 23-Jun-2025 19:20:47.786 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.0]。将使 用默认版本。 23-Jun-2025 19:20:47.799 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [5.0]。将使 用默认版本。 23-Jun-2025 19:20:52.447 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间 和JSP编译时间。 23-Jun-2025 19:20:52.541 信息 [main] org.apache.catalina.startup.HostConfig.deployWAR web应用程序存档文件[D:\apache-tomcat-9.0.106\webapps\demo-0.0.1-SNAPSHOT.war]的部署已在[6,390]ms内完成 23-Jun-2025 19:20:52.542 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\apache-tomcat-9.0.106\webapps\docs] 23-Jun-2025 19:20:52.607 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\apache-tomcat-9.0.106\webapps\docs]的部署已在[65]毫秒内完成 23-Jun-2025 19:20:52.607 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\apache-tomcat-9.0.106\webapps\examples] 23-Jun-2025 19:20:53.124 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\apache-tomcat-9.0.106\webapps\examples]的部署已在[517]毫秒内完成 23-Jun-2025 19:20:53.124 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\apache-tomcat-9.0.106\webapps\host-manager] 23-Jun-2025 19:20:53.156 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\apache-tomcat-9.0.106\webapps\host-manager]的部署已在[32]毫秒内完成 23-Jun-2025 19:20:53.157 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\apache-tomcat-9.0.106\webapps\manager] 23-Jun-2025 19:20:53.223 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\apache-tomcat-9.0.106\webapps\manager]的部署已在[66]毫秒内完成 23-Jun-2025 19:20:53.223 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\apache-tomcat-9.0.106\webapps\ROOT] 23-Jun-2025 19:20:53.240 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[D:\apache-tomcat-9.0.106\webapps\ROOT]的部署已在[16]毫秒内完成 23-Jun-2025 19:20:53.245 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8082"] 23-Jun-2025 19:20:53.325 信息 [main] org.apache.catalina.startup.Catalina.start [7287]毫秒后服务器启动
最新发布
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值