调试代码的过程中发现了一个奇怪的现象。
我用fetch向后台发出post请求:
fetch("http://localhost:8080/note/create",{ headers: { "Accept":"application/json", 'Content-Type':'application/json'}, mode:'cors', method:"POST", body:JSON.stringify({completed:false,message:"erw11111111"}), })
Fetch API cannot load http://localhost:8080/note/create. Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
改为
response.setHeader("Access-Control-Allow-Headers", "Content-Type,Accept");
就好了。
但我发现,如果用curl的话,哪怕reponse header不变,curl也能强行把post请求提交上去,非常霸道:
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"message":"value"}' http://localhost:8080/note/create
<spanstyle="font-family:"font-size:14px;background-color:#FFFFFF;">fetch失败的原因是返回结果的时候被浏览器限制了,curl又不是浏览器,什么结果都能返回啊。
<divclass="ref">
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。