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)

下一篇: how to use a json file in a typescript file