这是一个跨域问题,但问题是浏览器(Chrome)似乎没有遵循重定向。相反,jQuery ajax 调用没有返回任何内容,并且出现错误。
我正在尝试使用jQuery.ajax
,但我使用的 URL 重定向到另一个域。发生这种情况时,我得到一个错误。是否有什么特别需要做的,以便浏览器跟随重定向?
我已经添加access-control-allow-origin: *
到被重定向到的第二个域的标题中。
这是一个跨域问题,但问题是浏览器(Chrome)似乎没有遵循重定向。相反,jQuery ajax 调用没有返回任何内容,并且出现错误。
我正在尝试使用jQuery.ajax
,但我使用的 URL 重定向到另一个域。发生这种情况时,我得到一个错误。是否有什么特别需要做的,以便浏览器跟随重定向?
我已经添加access-control-allow-origin: *
到被重定向到的第二个域的标题中。
HTTP 重定向页面被视为任何其他 HTTP 页面,因为它也需要访问控制标头。如果您的重定向页面没有它们,浏览器将永远不会检查被重定向到的页面是否具有适当的权限。
与Location
重定向页面上的标题一起,还添加Access-Control-Allow-Origin
标题及其相关成分(即Access-Control-Allow-Methods
等)
获得跨域ajax调用的唯一方法是使用jsonp。
在 jQuery 中,将您的数据类型设置.ajax()
为“jsonp”。见这里:http ://api.jquery.com/jQuery.ajax/
如果被重定向到的服务器无法进行 jsonp 响应,它仍然可能无法正常工作。json 响应和 jsonp 响应的区别在于,json 响应是纯 json 字符串,而 jsonp 响应是调用传入 json 字符串的函数的代码。
一个不太破旧的教程:http ://remysharp.com/2007/10/08/what-is-jsonp/
一个很好的讨论:谁能用外行的术语解释 JSONP 是什么?