Я новачок у angular.js і намагаюся додати до запиту кілька заголовків:
var config = {headers: {
'Authorization': 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==',
'Accept': 'application/json;odata=verbose'
}
};
$http.get('https://www.example.com/ApplicationData.svc/Malls(1)/Retailers', config).success(successCallback).error(errorCallback);
Я переглянув всю документацію, і мені здається, це має бути правильно.
Коли я використовую локальний файл для URL-адреси в $http.get
, на вкладці мережі в Chrome я бачу такий запит HTTP:
GET /app/data/offers.json HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: max-age=0
If-None-Match: "0f0abc9026855b5938797878a03e6889"
Authorization: Basic Y2hhZHN0b25lbWFuOkNoYW5nZV9tZQ==
Accept: application/json;odata=verbose
X-Requested-With: XMLHttpRequest
If-Modified-Since: Sun, 24 Mar 2013 15:58:55 GMT
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
X-Testing: Testing
Referer: http://www.example.com/app/index.html
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
Як бачите, обидва заголовки були додані правильно. Але коли я зміню URL-адресу на вказану $http.get
вище (за винятком використання реальної адреси, а не example.com), я отримую:
OPTIONS /ApplicationData.svc/Malls(1) HTTP/1.1
Host: www.datahost.net
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://mpon.site44.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
Access-Control-Request-Headers: accept, origin, x-requested-with, authorization, x-testing
Accept: */*
Referer: http://mpon.site44.com/app/index.html
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
Єдина різниця в коді між цими двома полягає в тому, що для першого URL-адреса є локальним файлом, а для другого URL-адресою є віддалений сервер. Якщо ви подивитесь на другий заголовок запиту, заголовок автентифікації відсутній, і, Accept
схоже, використовується за замовчуванням замість вказаного. Крім того, перший рядок тепер пише OPTIONS
замість GET
(хоча Access-Control-Request-Method
є GET
).
Будь-яка ідея, що не так із наведеним вище кодом, або як отримати включені додаткові заголовки, якщо не використовувати локальний файл як джерело даних?