Я застрял в очень странной проблеме, я хочу отправить дополнительный параметр Авторизация в мой запрос 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
Спасибо
Используя обратный вызов предварительного запроса перед отправкой, мы можем добиться этого.
$.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 () { },
});
И вы можете установить его для всех запросов с помощью ajaxSetup
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', '...');
}
});