为什么axios发送OPTIONS请求方法不是DELETE或PUT方法

时间:2018-04-29 22:40:02

标签: reactjs axios


为什么我使用axios.delete(url)或axios.put()来发送请求,但是当我在Chrome开发工具中检查来自NetWork的请求时,请求方法是OPTIONS,而Access-Control-Request-Method是DELETE或PUT,如下所示:

enter image description here

2 个答案:

答案 0 :(得分:0)

DELETEPUT(或其他非简单)请求首先发出预检 OPTIONS请求,以确定您是否允许发送此请求请求。请求方法在Access-Control-Request-Method标题中给出。

在此处查看更多https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests

答案 1 :(得分:0)

Axios使用JSON作为默认内容类型,该调用始终与浏览器一起进行,作为OPTIONS调用而不是POST方法。为了克服这个问题,我们需要正确设置“内容类型”。我的配置如下

let config={
    headers: {'Content-Type' : 'application/x-www-form-urlencoded'}
}
return axios.post(postUrl,postJson,config).then(response=>{
     return response.data;
 }).catch(error=>{
     return error;
 });