对无效CORS请求的预期响应是什么?
CORS规范没有说明服务器应该如何响应无效的CORS请求。例如,如果请求源无效,则“终止这组步骤。请求不在本规范的范围内。”对于其他错误情况,例如请求无效的方法或头,也有类似的语言对无效CORS请求的预期响应是什么?,cors,Cors,CORS规范没有说明服务器应该如何响应无效的CORS请求。例如,如果请求源无效,则“终止这组步骤。请求不在本规范的范围内。”对于其他错误情况,例如请求无效的方法或头,也有类似的语言 在CORS错误的情况下,预期的响应应该是什么?我知道不同的服务器可能需要不同的行为。但是我正在寻找一个或多个标准的响应,如果服务器所有者不在乎的话,这些响应是可以接受的。我希望这取决于错误的性质,但我希望出现一些4xx错误,例如403(如果请求不符合某些要求的标准)或404(如果方法不可用)。是,我意识到我在回答我自
在CORS错误的情况下,预期的响应应该是什么?我知道不同的服务器可能需要不同的行为。但是我正在寻找一个或多个标准的响应,如果服务器所有者不在乎的话,这些响应是可以接受的。我希望这取决于错误的性质,但我希望出现一些4xx错误,例如403(如果请求不符合某些要求的标准)或404(如果方法不可用)。是,我意识到我在回答我自己的问题,但不管怎样,问题还是来了。我对此做了一些研究,行为似乎分为两大阵营: 1)如果CORS请求无效,则返回错误。这是项目采取的路线。这个图书馆还回来了
- 400不符合规范的请求的错误请求
- 403禁止使用无效的源或头
- 405方法不允许使用无效的方法
(请注意,我上面的研究并非详尽无遗。很难看到许多API的真实行为,因为它们要么需要身份验证,要么因为其他错误(如不支持的方法)而在不同级别阻止请求。)我只想补充一下Monsur的答案存在另一种行为(S3当前正在使用的行为):
另外,在Java中,发送403也是很常见的。Java链接非常古老,但Java中事实上的标准Spring方法是相同的。请参阅我的参考资料。可以说,服务器可以有一个逻辑分支,它遵循您的建议2,而不在服务器上执行代码。@先生,说方法2向用户返回调试信息是错误的。此“调试信息”仅适用于开发人员工具。有。还有另一种选择#3:简单地终止底层连接。S3甚至不会在没有匹配的情况下发送任何内容。