jQuery AJAX标头授权

我正在尝试基于 this tutorial授权AJAX查询.它使用Crypto库在发送之前使用适当的授权信息设置请求标头.我遇到的问题是标头似乎没有按要求设置.这是我的代码
beforeSend : function(xhr) {
  var bytes = Crypto.charenc.Binary.stringToBytes(username + ":" + password);
  var base64 = Crypto.util.bytesToBase64(bytes);
  xhr.setRequestHeader("Authorization","Basic " + base64);
},

解决方法

问题是没有将dataType设置为JSONP.由于没有这样做,浏览器将该调用解释为标准的AJAX请求,这意味着它在同源策略下被阻止.

工作代码供参考(赠送给@pdeschen以建议Crpyto):

<script type='text/javascript'>
// define vars
var username = '';
var password = '';
var url = '';

// ajax call
$.ajax({
    url: url,dataType : 'jsonp',beforeSend : function(xhr) {
      // generate base 64 string from username + password
      var bytes = Crypto.charenc.Binary.stringToBytes(username + ":" + password);
      var base64 = Crypto.util.bytesToBase64(bytes);
      // set header
      xhr.setRequestHeader("Authorization","Basic " + base64);
    },error : function() {
      // error handler
    },success: function(data) {
        // success handler
    }
});
</script>

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...