POST/GET 与 CORS 中的 PUT/DELETE
POST/GET Vs PUT/DELETE in CORS
我刚刚阅读 this:
same-origin policy allows inter-origin HTTP requests with GET and POST
methods but denies inter-origin PUT and DELETE requests
PUT/DELETE有什么特别之处?他们为什么被封锁?无论如何,您可以在 POST 方法中执行 update/delete。
对于 CORS,如果 POST 请求使用 xml/json 而不是 application/x-www-form-urlencoded,为什么它会被预检?
请解释为什么有些动词与其他动词的处理方式不同。
根本区别在于用户浏览网页触发的请求类型和脚本触发的请求类型。这种区别植根于网络历史,基于早期浏览器认为安全和不安全的内容。所有浏览器都试图保持向后兼容性,以免违反依赖早期 事实上 标准的服务器的期望。
用户浏览网页时会产生什么样的请求?基本上,GET
请求和 POST
请求由表单提交触发。浏览器总是允许这样的 cross-origin 请求,因此他们假定服务器是为处理它们而设计的。但这不包括,例如,具有只能通过脚本添加的自定义 headers 的 POSTS
。 (有关使请求安全与否的准确描述,请参阅 Fetch specification。)
查看我的回答here,详细了解 CORS 如何使用预检请求来保持与同源策略的向后兼容性。
我刚刚阅读 this:
same-origin policy allows inter-origin HTTP requests with GET and POST methods but denies inter-origin PUT and DELETE requests
PUT/DELETE有什么特别之处?他们为什么被封锁?无论如何,您可以在 POST 方法中执行 update/delete。
对于 CORS,如果 POST 请求使用 xml/json 而不是 application/x-www-form-urlencoded,为什么它会被预检?
请解释为什么有些动词与其他动词的处理方式不同。
根本区别在于用户浏览网页触发的请求类型和脚本触发的请求类型。这种区别植根于网络历史,基于早期浏览器认为安全和不安全的内容。所有浏览器都试图保持向后兼容性,以免违反依赖早期 事实上 标准的服务器的期望。
用户浏览网页时会产生什么样的请求?基本上,GET
请求和 POST
请求由表单提交触发。浏览器总是允许这样的 cross-origin 请求,因此他们假定服务器是为处理它们而设计的。但这不包括,例如,具有只能通过脚本添加的自定义 headers 的 POSTS
。 (有关使请求安全与否的准确描述,请参阅 Fetch specification。)
查看我的回答here,详细了解 CORS 如何使用预检请求来保持与同源策略的向后兼容性。