【问题标题】:Not seeing Ajax requests in Firebug if header has been modified如果标头已被修改,则在 Firebug 中看不到 Ajax 请求
【发布时间】:2010-03-24 16:40:09
【问题描述】:

我正在使用 jQuery 的库对 api 进行 ajax 调用,这需要将编码为 base64 的用户名和密码添加到标题中。

这是一个基本的例子:

$.ajax({
    type: "GET",
    contentType: 'application/json',
        beforeSend:function(xhr){
        xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue);
    }
    url: 'https://api.company.com/uri/',
    complete: function(result) {
       alert(result);
    }
});

但是当它触发时,我会看到一个黑色的警报框,所以它看起来不像有什么东西回来了。 Firebug 控制台中没有日志表明 get ajax 请求已完成。

但是,如果我删除 beforeSend 选项,我确实会看到 ajax 请求被记录下来,但请求返回“未授权”,所以它肯定命中了正确的位置。

关于为什么它没有出现在 Firebug 中的任何想法,以便我可以验证标头是否正确发送?

【问题讨论】:

    标签: jquery ajax http-headers basic-authentication


    【解决方案1】:

    我会说这是因为您在 url 之前没有“,”...

    $.ajax({
        type: "GET",
        contentType: 'application/json',
            beforeSend:function(xhr){
            xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue);
        }
        ,url: 'https://api.company.com/uri/',
        complete: function(result) {
           alert(result);
        }
    });
    

    可能是错的,但这是我的猜测,

    安德鲁

    【讨论】:

      【解决方案2】:

      刚刚遇到类似问题,JQuery 好像不支持为跨域请求设置 Authentication 标头。

      我有,在从端口 80 提供的脚本中:

          $.ajax({
              beforeSend : function(req) {
                  req.setRequestHeader('Authorization', auth);
              },
              url: 'http://localhost:8282/Blahblah',
              success: function(data) {
                console.log("data=" + data);
              }
          });
      

      而且我没有看到请求中设置了 Autorization-header。我把它改成

          $.ajax({
              beforeSend : function(req) {
                  req.setRequestHeader('Authorization', auth);
              },
              url: 'http://localhost/Blahblah',
              success: function(data) {
                console.log("data=" + data);
              }
          });
      

      似乎正在发生的事情是 JQuery 检测到这是一个跨域请求(在我的情况下是因为端口不同,在你的情况下可能是因为不同的主机?)并静默切换到 JSONP,而 JSONP 不会支持基本认证。

      How do I make a JSONP call with JQuery with Basic Authentication?

      我知道您的问题已经过时了,但 Google 把我带到了这里,它也可以把其他人带到这里。

      【讨论】:

        猜你喜欢
        • 2015-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-08
        • 1970-01-01
        • 2018-05-30
        • 1970-01-01
        • 2012-05-14
        相关资源
        最近更新 更多