为什么下面的post没问题,但是put请求会报错:XMLHttpRequest cannot load http://localhost:8001/service. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63343' is therefore not allowed access.客户端 $.ajax({ url: 'http://localhost:8001/man', method: 'POST', success: function (data) { console.log(data) } }); $.ajax({ url: 'http://localhost:8001/service', method: 'PUT', success: function (data) { console.log(data) } });服务端
1 回答
ITMISS
TA贡献1871条经验 获得超8个赞
问题在于预请求
,在发起PUT
请求之前会先发起一次OPTIONS
请求,报错是针对OPTIONS
这次请求,请求没有检查到headers
中设置的Access-Control-Allow-Origin
。
解决办法:
添加一个对于OPTIONS
请求的处理
app.options('/service', function (req, res) { res.header("Content-Type", "application/json; charset=utf-8"); res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS"); });
添加回答
举报
0/150
提交
取消