Loading...
mihayloff14 avatar mihayloff14 824 Точки

[JS APPS] 401 Unauthorized при подаване на променлива за headers на ajax заявката

Здравейте,

Работя по една от задачите за домашно и всичко върви гладко, когато реших да си оптимизирам кода и вместо на всяка ajax заявка с copy-paste да слагам headers: { 'X-Parse-Application-Id' : .... } реших да изнеса това в отделна променлива и просто навсякъде да пиша headers : headers

Тогава се получи странния case, че ако това е реализирано по този начин, при опит за изпращане на каквато и да е заявка, получавам error code 401 unauthorized.

Ето и кода ми:

Code

Някакви идеи защо това се получава?

Тагове:
0
JavaScript Applications 12/04/2015 13:02:01
RoYaL avatar RoYaL Trainer 6849 Точки

Извикваш функциите, преди да си инициализирал променливата headers. Смени им местата

 

var currentTownIndex = 0;
var headers = {
'X-Parse-Application-Id': 'cDOllTGD0mgH2eJVkoAEQX8Kl5uG9V5BOF99Rxz0',
'X-Parse-REST-API-Key': 'Chn6ZbJZKOcaI42fa2wQdrgoMZSBg88eWJmeOmVd'
};
initializeCountries();
initializeTowns();
0
RoYaL avatar RoYaL Trainer 6849 Точки

А извън темата - https://api.jquery.com/jquery.ajaxsetup/ това би ти свършило по-добра работа. Ако имаш някакви еднакви конфигурации на всички ajax request-и можеш да ги изнесеш в ajaxSetup. В твоя случай това са хедърите.

0
mihayloff14 avatar mihayloff14 824 Точки

Последно време явно съм доста разсеян.

Благодаря, и това ajaxsetup наистина би свършило по-добра работа.

0
a.angelov avatar a.angelov 1316 Точки

Защо обаче пишат, че не е препоръчително да се ползва?

Description: Set default values for future Ajax requests. Its use is not recommended.

0
RoYaL avatar RoYaL Trainer 6849 Точки

Защото е глобална опция. Както всичко глобално и това не се препоръчва. Кофти е от гледна точка на това, че ако работим примерно аз и ти по приложението, аз не съм длъжен да знам, че някъде си сложил ajaxSetup. И ще очаквам, че ако не подам метод на ajax-а той е GET. Само, че ти в ajaxSetup си сетъпнал method: POST :) И аз поствам, вместо да гетвам и се чудя защо така и никой дебъгер няма да ми го каже :)

1
a.angelov avatar a.angelov 1316 Точки

Ясно, благодаря :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.