jQuery ajax调用重定向到另一个域的域(未遵循)
这是一个跨域问题,但问题是浏览器(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是什么?
链接地址: http://www.djcxy.com/p/47507.html上一篇: jQuery ajax call to domain that redirects to another domain (isn't followed)