为什么下面的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
提交
取消
