Ama*_*mar 6 javascript ajax cors reactjs axios
与 fetch 相比,我更喜欢 axios,因为它简单易用。我正在运行一个本地开发服务器,它将 AJAX 请求发送到某个远程端点。由于同源策略,请求被阻止。所以我修改了我的 webpack 配置,如下所示:
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
},
},
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用 fetch 发出 API 请求,我添加"mode": "no-cors"允许跨源请求,一切正常。但是,这不适用于 axios。
fetch 基于Request API,允许指定模式:“no-cors”,而 axios 基于 XHR,不支持指定模式。chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security我可以通过运行where is 我的文件系统的某些路径来打开不安全的 chrome 窗口来解决此问题--user-data-dir。但是,不安全的 chrome 实例不允许运行扩展,因此我无法使用 React 和 Redux DevTools。这是使用 fetch 和 axios 发出请求的片段。当 axios 失败时 fetch 调用有效:
componentDidMount() {
fetch(someAPIEndpoint, {
mode: 'no-cors',
})
.then(response => console.log(response))
.catch(error => console.error(error))
axios
.get(someAPIEndpoint, {
mode: 'no-cors',
})
.then(results => console.log(results))
.catch(error => console.error(error))
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下也不可能使用代理服务器。代码中是否有其他解决方法,以便我可以使用 axios 并绕过此问题。提前致谢!!!
| 归档时间: |
|
| 查看次数: |
15182 次 |
| 最近记录: |