Я отредактировал свой ответ, и CORS уже настроен в NodeJS.
fetch('http://localhost:9000/api/app/contact', {
method: 'POST',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
email: this.state.email,
contactNumber: this.state.phone,
enquiry: this.state.msg
})
})
.then(function(res) { return res.json() })
.then(function(data) {
alert('We will contact you shortly')
});
я рендеринг выше кодирования, я столкнулся со следующей ошибкой:
Ошибка загрузкиHTTP: // локальный: 9000 / API / приложение / контакт: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». ПроисхождениеHTTP: // локальный: 8080Поэтому не допускается доступ. Если непрозрачный ответ отвечает вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Но когда я попробовал с почтальоном, это успешно работает. Пожалуйста, помогите мне, есть ли какой-либо код отсутствует в моем API загрузки.
Ниже приведен запрос POST почтальона и код.
следующий код: отправить запрос отPostman
.
var data = JSON.stringify({
"email": "[email protected]",
"contactNumber": "0123456789",
"enquiry": "Testing"
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "http://localhost:9000/api/app/contact");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.setRequestHeader("postman-token", "d5e08b69-5f0f-8193-e021-e2c3b1bfe1a3");
xhr.send(data);
На стороне сервера NodeJS у меня уже есть CORS в бэкэнде.
var express = require('express'),
controller = require('./app.controller'),
router = express.Router(),
cors = require('cors');
var issue2options = {
origin: true,
methods: ['POST'],
credentials: true,
maxAge: 3600
};
router.post('/contact', cors(issue2options), controller.sendContactForm);
module.exports = router;