vue使用cors解决跨域无效问题:前端设置了Content-Type为application/json

vue使用axios进行跨域操作时main.js设置了axios设置axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';

导致出现了跨域错误
cors规定其中Content-Type 只能为以下之一:

  1. text/plain
  2. multipart/form-data
  3. application/x-www-form-urlencoded
Vue应用程序需要从其他服务器获取数据并遇到跨域限制时,通常会在发送HTTP请求时设置`Content-Type`为`application/json;charset=utf-8`是为了指定请求体的数据格式。JSON格式是常见的API数据交换格式。 要解决Vue应用的跨域问题,你可以尝试以下几种方法: 1. **服务端设置**:如果控制着后端服务器,可以在服务器响应头中添加`Access-Control-Allow-Origin`,允许特定或所有源访问资源。例如: ``` Access-Control-Allow-Origin: * 或 access-control-allow-origin: "http://your-vue-app.com" ``` 2. **CORS预检请求**(CORS Preflight Request):对于某些跨域策略严格的服务器,先发送一个OPTIONS请求(默认不会携带`content-type`),服务器确认后才会发送实际的POST、GET等请求。 3. **Vue的axios库**:如果你使用的是axios库进行API请求,可以配置axios实例来自动添加`withCredentials`属性和适当的CORS配置: ```javascript axios.defaults.withCredentials = true; axios.defaults.headers.common['Content-Type'] = 'application/json'; ``` 4. **代理设置**(如vue-cli的vue.config.js):在构建工具如webpack的devServer中配置proxy,将前端请求转发到后端服务器,避免直接暴露给浏览器处理跨域问题。 5. **Nginx反向代理**:如果是部署环境,可以在Nginx服务器上配置反向代理,处理跨域请求。 注意,以上措施主要是针对同源策略的限制,如果是同源的情况下,设置`Content-Type`并不会直接影响跨域问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值