Софтуерно Инженерство
Loading...
mihayloff14 avatar mihayloff14 845 Точки

[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 SoftUni Team Trainer 6883 Точки

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

 

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

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

0
mihayloff14 avatar mihayloff14 845 Точки

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

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

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

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

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

0
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

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

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

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

0