Я использую Axios для отправки запроса на мой сервер NodeJS. Это моя просьба:
let url = 'http://example.com:1337/api/'
let config = {
headers: {
'Content-Type': 'application/json'
}
}
settings = (data) => {
return axios.post(url + 'settings', JSON.stringify(data), config)
.then( res => res.data)
.catch(e => console.info(e))
}
На сервере NodeJS / ExpressJS:
const express = require('express')
const App = express()
let bodyParser = require('body-parser')
// ... Mongoose and etc.
var cors = require('cors')
App.use(cors())
App.options('*', cors());
App.use("/data", express.static(__dirname + '/data'));
App.use(bodyParser.urlencoded({
extended: true
}));
App.use(bodyParser.json())
App.use('/api', require('./routes/Users'))
App.listen(1337)
Но запрос к http://example.com:1337/api/settings возвращает (firefox):
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://example.com:1337/api/settings. (Reason: CORS request did not succeed)
Спасибо за ваши решения.
@JimiPajala Я добавил больше информации. Спасибо.
Почему http://example.com? Правильно ли решаете?





// server.js
const express = require('express');
const app = express();
const routes = require('./routes');
const PORT = process.env.PORT || 5000;
// configure body parser for AJAX requests
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(routes);
//Server
app.listen(PORT, () => {
console.info(`Server listening on port ${PORT}.`);
});
App.use(cors()) App.options('*', cors()) не работает
Я обновил свой ответ, который использовал, и его работа идеально подходит для меня. github.com/asifvora/mern-stack-app
Попробуй это:
const express = require('express')
const App = express()
let bodyParser = require('body-parser')
// ... Mongoose and etc.
App.all('/*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
res.header("Access-Control-Allow-Methods", "GET, POST","PUT");
next();
});
App.use("/data", express.static(__dirname + '/data'));
App.use(bodyParser.urlencoded({
extended: true
}));
App.use(bodyParser.json())
App.use('/api', require('./routes/Users'))
App.listen(1337)
Сделайте свой пример более понятным, чтобы получить более качественные ответы. Ваш пример с серверной частью не дает нам никаких данных, с которыми мы могли бы работать. Мы понятия не имеем, какие у вас вары
Appиcors, даже если кто-то может попытаться угадать.