开发者社区> 问答> 正文

一个奇怪现象,curl发送的请求header可以突破服务器限制??报错

调试代码的过程中发现了一个奇怪的现象。

我用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"}),
        })



但由于后台返回的response header有问题,所以报错:
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 header头从

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



代码早就调好了,但这个问题实在有点让人理解不能。有人知道原因吗?

展开
收起
爱吃鱼的程序员 2020-06-08 18:01:01 953 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    <spanstyle="font-family:"font-size:14px;background-color:#FFFFFF;">fetch失败的原因是返回结果的时候被浏览器限制了,curl又不是浏览器,什么结果都能返回啊。
    <divclass="ref">

    引用来自“jianxia84”的评论

    <spanstyle="font-family:"font-size:14px;background-color:#FFFFFF;">fetch失败的原因是返回结果的时候被浏览器限制了,curl又不是浏览器,什么结果都能返回啊。

    2020-06-08 18:01:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载