我希望在将数据发布到服务器时传递Authorization标头。 我试过了
$.ajax({
url : <ServiceURL>,
data : JSON.stringify(JSonData),
type : 'POST',
contentType : "text/html",
dataType : 'json',
success : function(Result) {
},
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', <Authorization Header Value>);
},
error: function (RcvData, error) {
console.log(RcvData);
}
});
但REST服务返回错误(错误代码:500)。添加授权之前,同样的服务与$ .post()一起正常工作。 谁能告诉我“如何在$ .post()传递授权标题?”
答案 0 :(得分:4)
使用
contentType: 'application/json',
您可能已经data
和contentType
混淆了。
contentType
是您发送的Content-type
标题。
data
更改了jQuery如何处理您收到的数据。
答案 1 :(得分:4)
jQuery $ .ajax()方法在设置对象中接受headers
值。
所以:
$.ajax({
// url, data, etc...
headers: {
"Authorization" :"Basic " + myBase64variable,
"Content-Type" :"application/json"
}
});
来源:http://api.jquery.com/jquery.ajax/
PS:似乎你也可以在beforeSend参数中传入一个新的设置对象。我不知道这个,所以感谢您提出这个问题:)