我刚刚读了这个:
同源策略允许使用 GET 和 POST 的跨源 HTTP 请求 方法,但拒绝跨源 PUT 和 DELETE 请求
PUT/DELETE 有什么特别之处?他们为什么被封锁?无论如何,您可以在 POST 方法内进行更新/删除。
使用 CORS,如果 POST 请求使用 xml/json 而不是 application/x-www-form-urlencoded,为什么会预检?
请解释为什么某些动词的处理方式与其他动词不同。
编辑:我最终在一篇文章中写了这一点。
根本区别在于用户浏览网页触发的请求类型和脚本触发的请求类型。这种区别植根于网络历史,基于早期浏览器认为安全和不安全的概念。此后所有浏览器都试图保持向后兼容性,以免违反依赖于那些早期事实上的标准的服务器的期望。
用户浏览网络会产生哪些类型的请求?基本上,由表单提交触发的
GET
POST
POSTS
请参阅我的回答此处,了解有关 CORS 如何使用预检请求来保持与同源策略的向后兼容性的更多详细信息。