如何使用Javascript在$ .post()方法中传递授权头?

时间:2014-01-22 06:56:14

标签: javascript rest jquery jquery-post

我希望在将数据发布到服务器时传递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()传递授权标题?”

2 个答案:

答案 0 :(得分:4)

使用

 contentType: 'application/json',

您可能已经datacontentType混淆了。

  • 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参数中传入一个新的设置对象。我不知道这个,所以感谢您提出这个问题:)