Мой фронт приложения в угловом 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