xhr如何发送post请求_解决xhr发送post请求跨域问题

最近做了一个需求,具体要求是前端写一个js给别人调用,在这个js中要先调用一个接口获取token,在获取token后将token放在请求的头中进行其他接口的调用。

1.用xhr + promise的格式封装用来请求的request;

2.获取token,将token放在其他请求的头中;

重点来了:

本地调试时,因为是直接调用的测试服的接口地址,所以报跨域问题,试过了http-proxy-middleware,nginx代理,感觉还是不能很好的解决跨域的问题,最后,搜了一波

问题一:

找到了个chrome上的扩展插件:Access-Control-Expose-Headers,如截图:

问题二:

对于跨域的问题,首先要服务端配置允许跨域,服务端要加的内容如下:

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: POST, GET, OPTIONS

复制代码

其次,如果已经配置了以上的设置,还不能跨域成功的话,要看下是否有设置自定义的头部且要获取自定义的头部

如图:

后端设置了自定义的头部x-error-code,前端要拿到这个code,本地调试时报错了

解决方法:

服务端要将该字段允许前端获取,需加如下内容:

Access-Control-Expose-Headers:X-Error-Code

复制代码

问题三:

前端在发送请求时,需要设置定义的头部,错误截图如下:

解决方法:

Access-Control-Allow-Headers:X-App-Id

复制代码

总结:有报错时,还是应该好好看看报错信息,不然绕路太多,最后,隆重感谢这篇文章,以上解决方案来自于该文章:www.jianshu.com/p/ecce12652…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值