跨域:vue中发的axios post请求,参数带冒号:且报错blocked by CORS policy

背景:vue框架
post请求报错
在这里插入图片描述
status:failed
在这里插入图片描述

在这里插入图片描述
方法1
安装qs
npm install qs

api:
config.headers['Content-Type'] = 'application/json'

zujian.vue:
import qs from 'qs'
let param={
   
   postCode:this.$route.query.pc,
 }
 requestReplypost(qs.parse(param)).then(response=>{
   
   this.postList.push(response)
   this.contp=''
 })

方法2

api.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这是因为你的请求涉及到跨域访问,而后台服务器没有设置允许跨域访问的响应头,导致浏览器拒绝了该请求。解决这个问题可以在后台服务器的响应头中添加`Access-Control-Allow-Origin`字段,其值为允许跨域访问的域名。例如,如果你想允许所有域名进行跨域访问,可以在响应头中添加如下字段: ``` Access-Control-Allow-Origin: * ``` 如果你想只允许特定的域名进行跨域访问,可以将`*`替换为该域名。例如: ``` Access-Control-Allow-Origin: http://example.com ``` 注意,这个字段必须出现在响应头中,并且必须在其他响应头字段之前。 ### 回答2: 这个错误提示是由于跨域资源共享(CORS)策略引起的。默认情况下,在浏览器中,JavaScript脚本只能从与加载页面的同一域名下发起HTTP请求,不能跨域。而当我们使用axios库从JavaScript代码中访问后台接口时,如果后台接口的响应中没有包含特定的跨域许可头信息(Access-Control-Allow-Origin),则会触发这个错误。 要解决这个问题,可以尝试以下方法: 1. 修改后台接口的响应头。在后台接口返回响应之前,添加一个名为"Access-Control-Allow-Origin"的头,并将其值设置为允许访问该接口的域名或"*"。例如,可以在返回的响应头中添加以下信息: ```javascript res.setHeader('Access-Control-Allow-Origin', '*'); ``` 2. 使用代理服务器。可以在前端代码中配置一个代理服务器,将axios请求转发到后台接口,并将响应返回给前端。这样,由于前端代码是在与后台接口同一域名下运行的,就不存在跨域问题了。例如,可以在项目的根目录下创建一个vue.config.js文件,并添加以下配置: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://example.com', // 代理的后台接口域名 changeOrigin: true } } } }; ``` 然后在前端代码中访问后台接口时,将URL修改为代理服务器的URL,例如: ```javascript axios.get('/api/some-api').then(response => { // 处理响应 }).catch(error => { // 处理错误 }); ``` 通过以上方法中的一种或两种,应该能够解决使用axios访问后台接口时的CORS错误。 ### 回答3: 出现该错误是由于浏览器的同源策略(Same-Origin Policy)导致的。同源策略要求浏览器只能访问与当前网页具有相同协议、域名和端口的资源。 当使用axios访问后台接口时,如果后台没有配置跨域请求的允许访问控制头信息(Access-Control-Allow-Origin),则会出现该错误。 为了解决这个问题,我们可以通过以下几种方法: 1. 在后台服务器的响应头中添加Access-Control-Allow-Origin的值为"*",表示允许所有域名访问该接口。例如在Node.js中,可以通过设置响应头实现: ``` response.setHeader("Access-Control-Allow-Origin", "*"); ``` 2. 如果不允许所有域名访问该接口,可以将Access-Control-Allow-Origin的值设置为请求的域名。例如,如果前端页面运行在 http://localhost:3000 上,可以设置为: ``` response.setHeader("Access-Control-Allow-Origin", "http://localhost:3000"); ``` 3. 使用代理服务器。可以在Web服务器前面添加一个代理服务器,然后由代理服务器去请求后台接口。这样,通过代理服务器发送的请求是同域的,就不会受到同源策略的限制。 以上是几种常见的解决方案,根据具体的开发环境和需求,选择适合的方法来解决这个错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值