首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery AJAX标头授权

jQuery AJAX标头授权
EN

Stack Overflow用户
提问于 2012-07-18 19:18:03
回答 2查看 27.9K关注 0票数 6

我正在尝试授权一个基于this tutorial的AJAX查询。它在使用加密库发送适当的授权信息之前设置请求标头。我遇到的问题是,标题似乎不是按请求设置的。下面是我的代码:

代码语言:javascript
复制
beforeSend : function(xhr) {
  var bytes = Crypto.charenc.Binary.stringToBytes(username + ":" + password);
  var base64 = Crypto.util.bytesToBase64(bytes);
  xhr.setRequestHeader("Authorization", "Basic " + base64);
},
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-23 17:31:03

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

可供参考的工作代码(推荐Crpyto的功劳是@pdeschen ):

代码语言:javascript
复制
<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> 
票数 8
EN

Stack Overflow用户

发布于 2014-09-20 04:24:31

这似乎终于对我起作用了。在单个调用的基础上可能会有冲突。将此方法设置为将来连接选项的默认方法。

代码语言:javascript
复制
//Function( jqXHR jqXHR )
$.ajaxSetup( {beforeSend: function(jqXHR) {
    jqXHR.setRequestHeader( "My-Header", "My-Value" );
} } );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11540086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档