Jor*_*ino 2 xmlhttprequest fetch axios
我正在尝试执行服务器的后期请求,但使用axios不断获取CORS错误并在React中获取。
代码:
fetch('https://api/entries',
{ mode: 'no-cors',
method: 'post',
headers: {
"Content-Type":"application/octet-stream",
'Access-Control-Allow-Origin': true
},
body: JSON.stringify({
"KEY":"VALUE"
})
})
.then((response) => {
console.log(response)
})
.catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)
要么
axios({
method: 'post',
url: 'https://api/entries',
headers: {
"Content-Type":"application/octet-stream",
'Access-Control-Allow-Origin': true
},
data: {
"KEY":"VALUE"
}
})
.then(response => {
console.log(response);
})
.catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)
axios控制台响应
Access to XMLHttpRequest at 'https://api/entries' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
Run Code Online (Sandbox Code Playgroud)
而另一个
获取控制台响应
Cross-Origin Read Blocking (CORB) blocked cross-origin response https://api/entries with MIME type text/plain. See https://www.chromestatus.com/feature/5629709824032768 for more details.
Run Code Online (Sandbox Code Playgroud)
谢谢
解决此问题的最佳和最简便的方法是使用代理URL。
像这样
const PROXY_URL = 'https://cors-anywhere.herokuapp.com/';
const URL = 'https://api/entries';
axios.post(PROXY_URL+URL)
.then( i => console.log(i) )
.catch(e => console.error( "Error occured! ", e));
Run Code Online (Sandbox Code Playgroud)
在您的情况下,请尝试像这样使用:这应该可行。
const PROXY_URL = 'https://cors-anywhere.herokuapp.com/';
const URL = 'https://api/entries';
axios({
method: 'post',
url: PROXY_URL+URL,
data: {
"KEY":"VALUE"
}
})
.then(response => {
console.log(response);
})
.catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)
您甚至可以将Proxy URL与 fetch()
| 归档时间: |
|
| 查看次数: |
2356 次 |
| 最近记录: |