Ajax请求303响应CORS问题

Ajax request 303 response CORS issue

我正在尝试使用 jquery 模仿表单请求。该表单登录到服务器,该服务器 returns 303 响应并将用户重定向到主页。

这在使用表单时效果很好。但是,当尝试使用 ajax 调用时,出现以下错误:

XMLHttpRequest cannot load [redirect url]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin [origin-url] is therefore not allowed access.

我知道这是一个 CORS 错误,可以通过实施 CORS 来解决,但我不明白为什么它不能以与表单相同的方式运行。

我的 ajax 电话:

jQuery.ajax({
            url: "[same url as the form]",
            type: "post",
            data: formData
            });

我只进行了谷歌搜索 returns 结果试图阻止 303 重定向,因此似乎正常反应是在重定向之后。

我错过了什么?我必须实施 CORS 吗?

I get that this is a CORS error and could be solved by implementing CORS, but I don't understand why it can't function the same way as the form.

使用常规表格不会将结果数据提供给另一个网站上的 JavaScript 运行。

同源策略保护数据(在用户和其他网站之间可能是私有的)。

CORS 允许其他网站声明数据不需要默认保护级别并允许其他网站访问它。

Am I stuck having to implement CORS?

CORS 是解决该问题的标准方法。

JSONP 是一种可以完成相同工作的 hack。

代理是一种可行的解决方法。


如果您不想将响应读入您的 JS,则只需使用表单即可。如果您不希望最终用户看到结果,可以将其提交到隐藏的 iframe。