用axios 请求第三方接口会报跨域,但是用原生的ajax却是可以正常访问的
当时考虑是跨域问题,用到了proxyTable,是可以的,但是在生产环境却又出现了问题,找nginx配置相关 proxy_pass
这里是个大坑,我的配置是
// ‘/api’:{
// target: ‘http://127.0.0.1:8997’,
// changeOrigin:true,
// },
奈何这样配置的意思是转发到该服务器的8997端口,而不是我安装的第三方应用内的接口,思来想去,还是得直接调用http://127.0.0.1:8997,这个接口,报错跨域,忽然如有神助,想着是用axios不行,用原生的ajax行不行,试完惊呆了,竟然可以调通,原来是自己考虑多了,这时从网上搜素为什么axios请求三方API跨域,用原生的ajax正常
网上朋友有人说可能是axios设置了全局的axios.defaults.withCredentials = true,//表示跨域请求时是否需要使用凭证
污染了整个axios环境,需要将axios私有化
const service = axios.create({
baseURL: base url + request url
withCredentials: true,
timeout: 5000 // request timeout
})
这样一来,不会污染整个axios,瞬间豁然开朗了起来
axios请求三方API跨域,用原生的ajax正常
最新推荐文章于 2024-04-20 14:15:52 发布