Запрос изменен с POST на OPTIONS зависает

Я пытаюсь отправить запрос POST на конечную точку через HTTPS. Запрос имеет 2 заголовка, тип содержимого (application/json) и apiKey.

Я использую запрос в приложении PhoneGap, созданном в Angular, и когда запрос отправляется, его метод изменяется на OPTIONS.

Я знаю, что это стандартная практика для браузеров из-за CORS, но у меня есть полезная нагрузка, которую мне нужно, чтобы сервер принял, и парни из сервера говорят мне, что запросы OPTIONS имеют пустую полезную нагрузку с CORS (хотя я не могу найти проверка по этому поводу).

Сервер настроен для CORS и должен принимать POST и OPTIONS.

Почему-то мой запрос зависает.

Угловой код:

var submitDBIDResource = $resource(env.loginUserUrl, {}, {
    save: {
        method: 'POST',
        headers: { 'apiKey': apiKey }
     }
  });

submitDBIDResource.save({"dbid": dbid}).$promise.then(function(data) {
       console.log(data);
       return data;
   });

У меня есть в моем файле config.xml

Любые идеи, что мне нужно сделать?

Спасибо


person Ben Taliadoros    schedule 03.02.2015    source источник


Ответы (1)


Браузер автоматически отправит запрос OPTIONS перед отправкой запроса POST. Запрос OPTIONS должен отвечать соответствующим ответом, иначе браузер не отправит запрос POST.

Вашим бэкэнд-парням нужно создать два обработчика запросов, один для OPTIONS и один для POST.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

person unobf    schedule 03.02.2015
comment
Спасибо, попробую завтра, когда они вернутся, дам знать - person Ben Taliadoros; 03.02.2015
comment
Неожиданность убивает меня здесь, это помогло? :-D - person Tim Abell; 19.10.2017