为什么我的跨域请求总触发预检?
我用 fetch 发了个 POST 请求,带了自定义 header,结果浏览器先发了个 OPTIONS 请求,后端没处理就直接 404 了。
明明只是想传个 X-Auth-Token,为啥会触发 CORS 预检?简单请求不是不会预检吗?
我试过把 Content-Type 改成 application/json,还是不行。后端同事说他们只允许特定 header,但我不确定到底哪些组合会触发预检。
这是我的请求代码:
fetch('https://api.example.com/data', {
method: 'POST',
headers: {
'X-Auth-Token': 'abc123',
'Content-Type': 'application/json'
},
body: JSON.stringify({ name: 'test' })
})
记得让他们也处理OPTIONS请求,返回200状态码就行。这种跨域问题最烦人了,我都处理过无数次。
前端代码不用变,拿去改改后端就行。