Установить заголовок запроса jQuery Ajax

13

Я застрял в очень странной проблеме, я хочу отправить дополнительный параметр Авторизация в мой запрос ajax к службе, точно так же

Request headers
Authorization: bearer t-3e57cc74-3e7a-4fc7-9bbb-f6c83252db01
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: JSESSIONID=908D73C50F09E75C9A0D674C4CB33D2F; ROUTEID=.1; __unam=3c3246b-13bc693352d-aa1535c-1

Но используя этот код

headerParams = {'Authorization':'bearer t-7614f875-8423-4f20-a674-d7cf3096290e'};
    obj = {
        type: 'get',
        url: 'https://api.sandbox.slcedu.org/api/rest/v1/students/test1',
        headers: headerParams,
    data: [],
    dataType: 'json',
    processData: false,
    success: function(data) {
        console.log('success');
        console.log(data);
    }
};

  jQuery.ajax(obj);

Он отправляется как это, что не передает значение, также его тип запроса становится OPTION вместо GET, вот консольный журнал

Accept: */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Access-Control-Request-Headers  authorization
Access-Control-Request-Method   GET
Connection  keep-alive
Host    api.sandbox.slcedu.org
Origin  http://localhost
User-Agent  Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0

Может ли кто-нибудь сказать мне, как я могу передать это так Авторизация: предъявитель t-3e57cc74-3e7a-4fc7-9bbb-f6c83252db01

Спасибо

  • 0
    Я использую jQuery 1.8
  • 0
    Я проверил это из-за кросс-доменного вызова. Как это исправить?
Показать ещё 3 комментария
Теги:

2 ответа

20

Используя обратный вызов предварительного запроса перед отправкой, мы можем добиться этого.

$.ajax({
url: 'https://api.sandbox.slcedu.org/api/rest/v1/students/test1',
type: 'GET',
beforeSend: function (xhr) {
    xhr.setRequestHeader('Authorization', 'bearer t-7614f875-8423-4f20-a674-d7cf3096290e');
},
data: {},
success: function () { },
error: function () { },
});
  • 0
    это работает, но это должен быть «Носитель» вместо «Носитель»
13

И вы можете установить его для всех запросов с помощью ajaxSetup

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', '...');
    }
});
  • 1
    В моем случае мне нужно было установить это для заголовка X-CSRF-Token, и это решило мою проблему.
  • 0
    Обратите внимание, что на своей странице документов они настоятельно рекомендуют против этого. «Это может вызвать нежелательное поведение, так как другие абоненты (например, плагины) могут ожидать нормальных настроек по умолчанию».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню