Я пытаюсь отправить данные формы из React / Redux на локальный сервер Express.js.Однако я получаю ошибки CORS:
Access to XMLHttpRequest at 'http://localhost:4000/api/donate' from
origin 'http://localhost:3000' has been blocked by CORS policy: Response
to preflight request doesn't pass access control check: No 'Access-
Control-Allow-Origin' header is present on the requested resource.
VM6535:1 Cross-Origin Read Blocking (CORB) blocked cross-origin
response http://localhost:4000/api/donate with MIME type text/html. See
https://www.chromestatus.com/feature/5629709824032768 for more details.
createError.js:17 Uncaught (in promise) Error: Network Error
at createError (createError.js:17)
at XMLHttpRequest.handleError (xhr.js:87)
Это была первоначальная политика CORS, которую я установил, чтобы Express.js получал мои React Data:
// index.js in the backend project
let cors = require("cors");
const corsOptions = {origin : "http://localhost:3000/" }; // React app is on port 3000
router.post('/api/donate', cors(corsOptions), (req, res, next) => { ....
Я отправлял тестовую кредитную картупоручил Stripe с использованием строковых данных раньше, и это работало без ошибок.Единственное отличие состоит в том, что раньше я только отправлял данные, используя компоненты формы / ввода из react-stripe-elements
, тогда как теперь я также отправляю некоторые данные из своего хранилища Redux.
Даже сейчас с этой ошибкой Stripe по-прежнему отвечает частичным токеномданные (возможно значения по умолчанию, не уверен).
Что-то не хватает в моей политике CORS?Я думал, что белый список localhost: 3000 исправил бы это, и это казалось.Но это все еще выдает ошибку выше.