Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果标题已修改,则在Firebug中看不到Ajax请求_Jquery_Ajax_Http Headers_Basic Authentication - Fatal编程技术网

Jquery 如果标题已修改,则在Firebug中看不到Ajax请求

Jquery 如果标题已修改,则在Firebug中看不到Ajax请求,jquery,ajax,http-headers,basic-authentication,Jquery,Ajax,Http Headers,Basic Authentication,我正在使用jQuery的库对api进行ajax调用,这需要在标头中添加编码为base64的用户名和密码 以下是一个基本示例: $.ajax({ type: "GET", contentType: 'application/json', beforeSend:function(xhr){ xhr.setRequestHeader("Authentication", "Basic " + base64EncodedValue); } u

我正在使用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中以便我可以验证标题是否正确发送的原因,有什么想法吗?

我会说,这是因为您没有一个“,”前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);
    }
});
可能是错的,但这是我的猜测


安德鲁

我会说,这是因为你没有一个“,”前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);
    }
});
可能是错的,但这是我的猜测


Andrew刚刚遇到了类似的问题,JQuery似乎不支持为跨域请求设置身份验证头

我在80端口发送的脚本中:

    $.ajax({
        beforeSend : function(req) {
            req.setRequestHeader('Authorization', auth);
        },
        url: 'http://localhost:8282/Blahblah',
        success: function(data) {
          console.log("data=" + data);
        }
    });
我没有看到在请求上设置自动化头。我把它改成了

    $.ajax({
        beforeSend : function(req) {
            req.setRequestHeader('Authorization', auth);
        },
        url: 'http://localhost/Blahblah',
        success: function(data) {
          console.log("data=" + data);
        }
    });
似乎发生的事情是,JQuery检测到这是一个跨域请求(在我的情况下是因为端口的不同,在您的情况下可能是因为不同的主机?),然后悄悄地切换到不支持基本身份验证的JSONP


我知道你的问题很老了,但是谷歌把我带到这里,其他人也可以带到这里。

刚刚遇到了类似的问题,JQuery似乎不支持为跨域请求设置身份验证头

我在80端口发送的脚本中:

    $.ajax({
        beforeSend : function(req) {
            req.setRequestHeader('Authorization', auth);
        },
        url: 'http://localhost:8282/Blahblah',
        success: function(data) {
          console.log("data=" + data);
        }
    });
我没有看到在请求上设置自动化头。我把它改成了

    $.ajax({
        beforeSend : function(req) {
            req.setRequestHeader('Authorization', auth);
        },
        url: 'http://localhost/Blahblah',
        success: function(data) {
          console.log("data=" + data);
        }
    });
似乎发生的事情是,JQuery检测到这是一个跨域请求(在我的情况下是因为端口的不同,在您的情况下可能是因为不同的主机?),然后悄悄地切换到不支持基本身份验证的JSONP

我知道你的问题很老了,但谷歌把我带到了这里,也可能把其他人带到这里