使用jquery和ajax发送授权标头

我已经在stackoverflow上查看了以下问题,但我没有尝试做什么。

Ajax授权请求标头一次又一次失败

jQuery Ajax未经授权的401错误

使用跨域post发送凭据?

这是我目前拥有的代码:

$(document).ready(function() { $.ajax({ url: 'http://sample.domain.com/script.php?name1=value1&jsonp=?', type: 'GET', dataType: 'json', contentType: "application/json", beforeSend: function(xhr) { xhr.setRequestHeader("Authentication", "Basic ZnJvbWFwcGx********uOnRoM24zcmQ1UmgzcjM=") //Some characters have been replaced for security but this is a true BASE64 of "username:password" }, success: function(data){ alert(data); } }); });  

我拥有的子域名受.htpasswd文件的密码保护。 使用base64编码中使用的用户名/密码组合,网站登录对我来说很好。

我在不同的域上运行此脚本而不是url所在的域,这就是为什么我有jsonp =? 在url中

我在浏览器中从控制台获得的响应是​​: GET http://sample.domain.com/script.php?name1=value1&jsonp=jsonp1334177732136 401 (Authorization Required)

JSONP使用脚本标记代理。 它不支持自定义标头。 你是否控制了端点? 如果是这样,请查看启用CORS,或者在GET字符串中传递身份validation密钥。

使用jsonp时,JQuery会将您的URL“ajax”请求转换为:

  

然后它写一个随机函数

 var json9409d0sf0d9s0df90 = function() { //some callback logic here. } 

并追加?callback = json9409d0sf0d9s0df90

然后你的服务器说

 echo $_GET['callback] . "(" . $json . ")"; 

并将其作为响应发回

 json9409d0sf0d9s0df90({some: data}); 

由浏览器执行并由jQuery的神奇处理程序处理,使其像普通的ajax回调一样响应。

AFAIK, 资产加载不会通过任何标准浏览器获取自定义标头。

标题名称是Authorization ,您正在发送“ Authentication

例如

授权:基本QWxhZGRpbjpvcGVuIHNlc2FtBmU =