2012-12-23 13 views
13

Utknąłem w bardzo dziwny problem, chcę wysłać dodatkowa PARAM Authorization w moim ajax żądanie do usługi, tak jak toSet nagłówka żądania Ajax jQuery

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 

ale przy użyciu tego kodu

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); 

przesyła taki, który nie przechodzi wartość, także jej typ żądania stają OPCJA zamiast GET, oto log konsola

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 

Czy ktoś może mi powiedzieć jak mogę przekazać go jak ten pozwolenia: t-3e57cc74-3e7a-4fc7-9bbb-f6c83252db01

Dzięki

+0

używam jQuery 1.8 – MZH

+0

Sprawdziłem go, jego powodu Krzyża Domain Call Jak mogę to naprawić? – MZH

+0

Zobacz ten wątek: http://stackoverflow.com/questions/3506208/jquery-ajax-cross-domain –

Odpowiedz

20

Korzystanie z beforeSend wstępnie żądanie oddzwonienia możemy osiągnąć ten okaziciela.

$.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

to działa, ale powinno być "Nosicielem" zamiast "nośnikiem" – Chiu

13

I można ustawić dla wszystkich żądań z ajaxSetup

$.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('Authorization', '...'); 
    } 
}); 
+1

W moim przypadku musiałem ustawić to dla nagłówka X-CSRF-Token i to rozwiązało mój problem. – Oranges13

Powiązane problemy