Angular 7 CORS дает ошибку и данные одновременно - PullRequest
0 голосов
/ 23 апреля 2019

Мой фронт приложения в угловом 7, а бэкэнд в ndoejs (экспресс). Я использую модуль cors в nodejs server.js, как это.

var cors = require('cors')

app.use(cors());

Когда я делаю вызов API из внешнего интерфейса, я вижу еще один вызов OPTIONS, после поиска некоторых решений, я обнаружил, что OPTIONS - это автоматический вызов в случае вызовов cors.

В моем случае оба попадания - это одно из ОПЦИЙ, а второе - ПОЧТА. Хит опций возвращает 204 no content, а хит POST возвращает ожидаемые данные, но в то же время я получаю эту ошибку в своем браузере.

Access to XMLHttpRequest at 'http://localhost:2233/api/question' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Мой код находится в try catch, и он собирается в catch после вызова API, но на вкладке сети данные видны в ответе API.

Есть идеи, что случилось ??

EDIT

Заголовки ответа при вызове OPTIONS

Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, 
Authorization, Accept, Client-Security-Token, Accept-Encoding
Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, PATCH
Access-Control-Allow-Origin: *
Allow: POST
Connection: keep-alive
Content-Length: 4
Content-Type: text/html; charset=utf-8
Date: Tue, 23 Apr 2019 11:49:11 GMT
ETag: W/"4-Yf+Bwwqjx254r+pisuO9HfpJ6FQ"
Vary: Accept-Encoding
X-Powered-By: Express

Заголовки ответа при вызове POST

Connection: keep-alive
Content-Length: 64
Content-Type: application/json; charset=utf-8
Date: Tue, 23 Apr 2019 11:23:06 GMT
ETag: W/"40-q2QpyVWh4SyAq38SeUHizD/aESI"
Vary: X-HTTP-Method-Override, Accept-Encoding
X-Powered-By: Express

1 Ответ

0 голосов
/ 23 апреля 2019

Прежде всего, спасибо огромное Jaromanda X за то, что он сообщил мне актуальную проблему.

На самом деле проблема не заключалась в получении заголовка ответа cors в вызове POST, и после поиска некоторых проблем я пришел кзнать проблему, которую я добавил cors() в моем приложении после определения маршрутов API и после сдвига cors() до того, как маршруты решили проблему.

...