发布给CORS错误,GET工作正常节点JS

问题描述

我的POST方法不起作用,但是我的GET方法起作用。我在哪里错了?

服务器JS

const Express = require('express');
const App = Express();
const BodyParser = require('body-parser');
const Cors = require('./Others/Cors');
App.use(Cors);

Cors Options JS

const Cors = require('cors');
let CorsOptions = {
    origin: '*',optionsSuccessstatus: 200,}
module.exports = Cors(CorsOptions);

一个路由器页面

const Express = require('express');
const Router = Express.Router();
const Controller = require('../Controllers/Scenarios');
const Upload = require('../Others/MulterBody');
const Cors = require('../Others/Cors');

Router.get('/Scenarios_GetAll',Controller.GetAll);
Router.post('/Scenarios_ChangeActive',Controller.ChangeActive);
Router.get('/Scenarios_DeleteOne/:id',Controller.DeleteOne);
Router.post('/Scenarios_AddOne',Upload.none(),Controller.AddOne);
Router.post('/Scenarios_UpdateOne',Controller.UpdateOne);
Router.get('/Scenarios_GetListForGame/:id',Controller.GetListForGame);
module.exports = Router;

解决方法

Browser devtools控制台日志和“网络”选项卡可帮助解决此类问题。

尝试将此行添加到路由器定义中,以处理http OPTIONS动词。

Router.options('*',Cors)

您可能需要重构代码,以使纯cors()方法调用可用于options。摆脱掉您的Cors Options JS源文件,并像这样编写路由器。

...
const Upload = require('../Others/MulterBody');
const cors = require('cors');
cors({
    origin: '*',optionsSuccessStatus: 200,});

Router.options('*',cors());
Router.get('/Scenarios_GetAll',Controller.GetAll);
...