我已经看过关于这个主题的所有文章和帖子(包括 SO),流行的评论是同源策略阻止跨域的表单 POST。我看到有人建议同源政策不适用于表单帖子的唯一地方是这里。
我想从更“官方”或正式的来源获得答案。例如,有没有人知道 RFC 解决了同源如何影响或不影响表单 POST?
澄清 :我不是在问是否可以构造 GET 或 POST 并将其发送到任何域。我在问:
顺便说一句,如果同源不影响表单 POST - 那么它就更清楚地说明了为什么需要防伪令牌。我说“有点”,因为似乎太容易相信攻击者可以简单地发出 HTTP GET 来检索包含防伪令牌的表单,然后发出包含相同令牌的非法 POST。注释?
同源策略仅适用于浏览器端编程语言。因此,如果您尝试使用 JavaScript 发布到与原始服务器不同的服务器,那么相同的原始策略就会发挥作用,但如果您直接从表单发布,即操作指向不同的服务器,例如:
<form action="http://someotherserver.com">
并且发布表单时不涉及 javascript,则不适用同源策略。
有关更多信息,请参见维基百科