Проблем при активирането на CORS през API шлюз за ламбда функция

Вярно е, че никога преди не съм използвал CORS и не съм напълно сигурен какво правя.

Опитвам се да извикам Lambda функция от уебсайт, без да се налага да минавам през JSONP за заявки от кръстосан произход. Опитах да следвам този урок за активиране на CORS през API шлюза, но изглежда не работи. Създадох метод GET, тествах дали работи чрез Postman и след това използвах опцията за активиране на CORS от падащото меню за действие. Изпращам заявката с помощта на AJAX, както следва

$.ajax({
        url: myEndpoint,
        type: "GET",
        crossDomain: true,
        dataType: "json",
    })

И в отговор получавам грешката

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access"

Някой знае ли как да коригира този проблем?


person master565    schedule 22.04.2017    source източник
comment
По време на предварителен полет или по време на действителната заявка? Прочетохте ли, че обаче трябва да разчитате на задната част, за да върнете заглавките Access-Control-Allow-Origin, тъй като отговорът за интеграция е деактивиран за интеграцията на прокси сървъра.?   -  person Alexander Torstling    schedule 22.04.2017
comment
Тази грешка е това, което се регистрира в конзолата на chrome. Как да разбера дали е било преди полет или по време на действителната заявка? Този ред в документацията малко ме обърка, защото друг източник, който видях, имаше някакъв коментар относно това, че не е необходимо да редактирате вашата ламбда услуга, въпреки че предполагам, че това вероятно е грешно. Така че трябва ли просто да добавя CORS заглавките към моя отговор в моята ламбда функция?   -  person master565    schedule 22.04.2017
comment
Ако помага, моята Lambda функция получава и обработва заявката, това е просто отговорът, който никога не се връща на потребителя.   -  person master565    schedule 22.04.2017
comment
Игнорирайте предишните ми два коментара, добавяйки заглавка Access-Control-Allow-Origin към моя ламбда отговор го поправи. Благодаря за помощта!   -  person master565    schedule 22.04.2017
comment
Съжалявам, че го нямаше. Предполетът може да бъде открит, тъй като това е заявка OPTIONS. Предполагам, че шлюзът обработва всички тези правилно, но разчита на бекенда, за да добави CORS заглавки за действителните заявки.   -  person Alexander Torstling    schedule 23.04.2017


Отговори (1)


Ако използвате прокси, тогава вашият отговор за интегриране на Lambda трябва да има заглавка „Access-Control-Allow-Origin“.

person Balaji    schedule 23.04.2017