Проблемы с CORS даже после использования плагина npm cors на сервере узлов - PullRequest
0 голосов
/ 31 октября 2018

Я создал простой сервер в узле js для получения запроса от приложения реагирования.

Но для метода GET нет ошибки CORS, но всякий раз, когда я делаю пост, он выдает ошибку.

enter image description here

Чтобы метод POST работал, я добавил в файл index.js папки действий, и он должен попасть в URL из файла server.js.

index.js

import axios from 'axios';

export const GET_NAVBAR = "GET_NAVBAR";
export const LOGIN = "LOGIN";

export const BASE_API_URL = "http://localhost:3030";
export const GUEST_API_URL = "https://XXX.XXX.XXX.X:5443/wcs/resources/store/1";


export const getNavbar = () => {
    return axios.get(BASE_API_URL + '/topCategory').then(res => {
        return {
            type: GET_NAVBAR,
            payload: res.data.express.catalogGroupView
        };
    });
};



export const login = () => {
    return axios.post(GUEST_API_URL + '/guestidentity', {}).then(res => {
        console.log(res);
        return {
            type: LOGIN,
            payload: {}
        }
    }).catch(e => {
        console.log(e);
        return {
            type: LOGIN,
            payload: {}
        }
    });
};

server.js

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const Client = require('node-rest-client').Client;//import it here
const app = express();
const helmet = require('helmet');
const morgan = require('morgan');


// enhance your app security with Helmet
app.use(helmet());

// use bodyParser to parse application/json content-type
app.use(bodyParser.json());

app.use(cors());

// log HTTP requests
app.use(morgan('combined'));



app.post('/guestidentity', (req, res) => {

    var client = new Client();

// direct way
    client.post("https://XXX.XXX.XXX.X:5443/wcs/resources/store/1/guestidentity", (data, response) => {
        res.send({express: data});
    });
});



const port = 3030;
app.listen(port, () => console.log(`Server running on port ${port}`));

Я не знаю, где мой код ошибается. Может кто-нибудь, пожалуйста, помогите мне решить эту проблему. Я был бы признателен, если бы кто-то мог дать представление или немного помочь мне. Спасибо

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Я со своей стороны использовал

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

Он будет принимать из любых * источников, вы можете изменить это позже

0 голосов
/ 31 октября 2018

В вашем server.js добавьте следующее промежуточное ПО.

var allowCrossDomain = function(req, res, next) {

res.header('Access-Control-Allow-Origin', 'http://localhost:3030/');

res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');

res.header('Access-Control-Allow-Headers', 'Content-Type');


next();

};

app.use(allowCrossDomain);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...