0

此脚本返回 302 异常,但我无法从响应中获取标头。

在控制台中我可以看到 header location。它返回一个新的 URL,但我无法从脚本中获取它。

帮助!

jQuery.ajax({
    url: 'http://vk.com/doc-58017030_217989332?hash=89a86b87f793847c96&dl=96884e265f15cb647f&api=1',
    type: 'GET',
    data:     {},
    cache:    false,
    timeout:  30000,
    success:  function (data, textStatus, request) {
        console.log('success');
        console.log(request.getAllResponseHeaders());
    },
    error:    function (request, textStatus, errorThrown) {
        console.log('error');
        console.log(request.getAllResponseHeaders());
    },
    complete: function (request, textStatus) {
        console.log('complete');
        console.log(request.getAllResponseHeaders());
    }
});
4

1 回答 1

0

由于这是一个跨域访问调用,您确实需要在您的服务器上解决它。使用仅客户端代码的 302 重定向似乎没有解决方法。它们被浏览器认为是“不安全的”(就 JavaScript 而言)。

建议的解决方案:

在您自己的 Web 服务器上提供服务,该服务接受 URL(如http://vk.com/doc-58017030_217989332?hash=89a86b87f793847c96&dl=96884e265f15cb647f&api=1)并返回最终响应的流(在任何重定向之后)。这通常也可以解决任何跨域安全问题(通过使它们都来自您自己的域)。

从服务器解决远程数据访问问题比在浏览器中解决 JScript 容易得多。

于 2013-09-10T14:29:33.273 回答