Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 即使在节点服务器中使用NPMCORS插件,CORS也会出现问题_Node.js_Reactjs_Express_Redux_Axios - Fatal编程技术网

Node.js 即使在节点服务器中使用NPMCORS插件,CORS也会出现问题

Node.js 即使在节点服务器中使用NPMCORS插件,CORS也会出现问题,node.js,reactjs,express,redux,axios,Node.js,Reactjs,Express,Redux,Axios,我在NodeJS中创建了一个简单的服务器,用于从react应用程序接收请求 但是对于GET方法没有CORS错误,但是每当我发布时,它都会给我一个错误 为了使POST方法能够工作,我已经在actions文件夹的index.js文件中实现了,它应该命中server.js文件中的url index.js import axios from 'axios'; export const GET_NAVBAR = "GET_NAVBAR"; export const LOGIN = "LOGIN";

我在NodeJS中创建了一个简单的服务器,用于从react应用程序接收请求

但是对于GET方法没有CORS错误,但是每当我发布时,它都会给我一个错误

为了使POST方法能够工作,我已经在actions文件夹的index.js文件中实现了,它应该命中server.js文件中的url

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}`));

我不知道我的代码哪里出错了。有人能帮我解决这个问题吗。如果有人能为我提供一些见解或指导,我将不胜感激。谢谢

在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);
就我而言,我曾经

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();
});

它将接受来自任何
*
来源的信息,您可能希望以后更改该信息

永远不要公开您的IP地址和端口您为什么要调用
client.post(
在您的服务器中的
guestidentity
路由中?是否需要调用该api?该api是否在其他服务器中?该api是否与Postman或任何其他客户端一起工作?是的,它在不同的服务器中。是的,它与Postman一起工作。那么现在该怎么做。您能给我一点指导吗?在同一个server.js文件中,我使用GET method,但它工作得很好。仅在POST中,我遇到了问题我需要安装npm还是只需添加那段代码。只需添加它。不需要安装任何东西。但它不工作…我是否正确地点击了index.js到server.js的url。您是否正确地重新启动了server.js或使用nodemon来侦听更改?是的,我知道我重新启动了…..但是它显示了cors错误。但是我的代码是否与我从index.js点击server.js的方式正确?我的代码是否与我从index.js点击server.js的方式正确?如果您已经在使用
cors
库,则无需执行此操作。库完成了您需要的所有操作,并添加了正确的头。