如何从此ajax请求中获取标头?

时间:2013-09-10 14:09:36

标签: jquery ajax http-status-code-302 response-headers

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

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

HELP!

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());
    }
});

1 个答案:

答案 0 :(得分:0)

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

建议的解决方案:

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

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