407需要代理验证

时间:2010-05-11 06:50:17

标签: javascript ajax firefox xmlhttprequest internet-explorer-7

我在Mozilla Firefox中异步使用XMLHttp对象时遇到以下异常。

407 Proxy Authentication Required
The ISA Server requires authorization to fulfill the request.
Access to the Web Proxy filter is denied.

原因说明:

实际上我正在尝试使用get in javascript进行异步请求。它使用IE 6工作正常,但对于IE 7和Firefox 3.5,它将不会使用异步请求获取任何数据,那么如何克服这个问题?

当我使用firebug在Firefox 3.5中调试时,它会显示

407 Proxy Authentication Required The ISA Server requires authorization to fulfil the request. Access to the Web Proxy filter is denied.
控制台上的

异常以及如何解决这个问题

注意:我们的网络有代理服务器

2 个答案:

答案 0 :(得分:6)

我知道我在这里参加聚会有点晚了,但是,这个问题,我遇到了同样的问题。 @ FK82指出了正确的解决方案,我想记录它,因为我已经尝试过它并且有效。

$.ajax({
    url: "http://somefancyurl.com/api/do_it",
    data: { id:"user" },
    dataType: "jsonp",
    success: function(data) {
        console.log(data);
    }
  });

如果我未指定jsonp ,则会收到 407 Proxy Authentication Required 错误。

  • 虽然最初的问题没有指定JQuery,但是我能够使用这种方法成功地使用FireFox 3.6.x和IE7进行测试。 JSONP。

答案 1 :(得分:0)

代理身份验证只是一个名为"Proxy-Authorization"

的http头字段的存在

浏览器应该自动发送这些内容。

但是既然你可以为ajax请求添加一些自定义标头,你可以尝试手动设置它。

request.setRequestHeader("Proxy-Authorization", value);
  • 请求是XMLHttp对象
  • username:password
  • 的base64编码版本

请注意,我不确定是不是这样,如果我错了,请纠正我。

或者我在谷歌上发现的一些页面说要添加X-Requested-With,也值得尝试一下。

request.setRequestHeader("X-Requested-With", "XMLHttpRequest");