2014-01-22 3 views
5

Я хочу передать заголовок авторизации при отправке данных на сервер. Я попытался

$.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() ??»

ответ

4

Использование

contentType: 'application/json', 

Вы, возможно, получили data и contentType перепутаны.

  • contentType является Content-type заголовок отправки.

  • data Изменяет, как jQuery обрабатывает данные, которые вы получаете.

4

JQuery $ .ajax() метод принимает значение headers в объекте настройки.

Итак:

$.ajax({ 
    // url, data, etc... 
    headers: { 
     "Authorization" :"Basic " + myBase64variable, 
     "Content-Type" :"application/json" 
    } 
}); 

Источник: http://api.jquery.com/jquery.ajax/

PS: Кажется, вы также можете передать в новой настройки объекта в параметре beforeSend. Я этого не знал, поэтому спасибо за задание этого вопроса :)

Смежные вопросы