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。
我正在尝试使用 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。