Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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 Express CORS适用于除一个端点之外的其他端点_Node.js_Express_Cors - Fatal编程技术网

Node.js Express CORS适用于除一个端点之外的其他端点

Node.js Express CORS适用于除一个端点之外的其他端点,node.js,express,cors,Node.js,Express,Cors,我有一个简单的Express项目作为API端点,使用cors作为中间件 cors可用于除一个端点之外的任何其他端点。这是我的代码快照: const express = require('express'); var cors = require('cors'); const app = express(); app.use(cors()); app.get('/shuttles', tokenPassport.authenticate('bearer', { session: fal

我有一个简单的Express项目作为API端点,使用cors作为中间件

cors可用于除一个端点之外的任何其他端点。这是我的代码快照:

const express = require('express');
var cors = require('cors');
const app = express();

app.use(cors());

app.get('/shuttles',
    tokenPassport.authenticate('bearer', { session: false }),
    (req, res) => {
        // ....
        // implementation goes here...
        // ....
})

app.get('/deposit',
    tokenPassport.authenticate('bearer', { session: false }),
    (req, res) => {
        // ....
        // implementation goes here...
        // ....
})
/deposit
中的CORS正在工作,但不与
/shuttles
一起工作

注意:无需指定
令牌Passport
要求。这是为了授权

编辑

这是ChromeDevTool中网络选项卡的快照。它只是发送
选项
请求,这是响应头。响应中无
Access Control Allow Origin
标题


您好,您可以尝试在express server中添加此行吗


app.options('*',cors())。您还可以检查在调用
/shuttles
端点时是否从客户端应用程序向
*

添加了“访问控制源”标题。您好,您可以尝试在express server中添加此行吗


app.options('*',cors())。您还可以检查在调用
/shuttles
端点时,是否从客户端应用程序向
*

添加了“访问控制源”标题,您可以在
app.js
server.js
文件中创建自己的中间件

//CORS
app.use((req, res, next) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type,Accept,Authorization');
    res.setHeader('Access-Control-Allow-Credentials', true);
    next();
});
如果要使用
cros
模块

const corsOptions = {
    "origin": "*",
    "methods": "GET, HEAD, PUT, PATCH, POST, DELETE",
    // other options
}

app.use(cors(corsOptions));

您可以在
app.js
server.js
文件中创建自己的中间件

//CORS
app.use((req, res, next) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type,Accept,Authorization');
    res.setHeader('Access-Control-Allow-Credentials', true);
    next();
});
如果要使用
cros
模块

const corsOptions = {
    "origin": "*",
    "methods": "GET, HEAD, PUT, PATCH, POST, DELETE",
    // other options
}

app.use(cors(corsOptions));

经过深思熟虑,在宇宙中找到了解决方案,我的Express应用程序托管在Google App Engine中,我意识到我的
dispatch.yaml
包含

- url: "*/shuttles*"
  service: shuttle
这是问题的根源。 只需重新设计穿梭服务和路线,就可以解决问题:D


谢谢你的评论,他们都很好。

经过深思熟虑,在宇宙中找到了解决方案,我的Express应用程序托管在Google App Engine中,我意识到我的
dispatch.yaml
包含

- url: "*/shuttles*"
  service: shuttle
这是问题的根源。 只需重新设计穿梭服务和路线,就可以解决问题:D


感谢您的所有评论,它们都很好。

用于编辑/更新您的问题,并在您向'/shuttles'端点发出请求时添加浏览器正在devtools控制台中登录的确切错误消息。另外,添加一个代码段,显示您用于发出请求的前端JavaScript代码。用于编辑/更新您的问题,并添加向“/shuttles”端点发出请求时浏览器正在devtools控制台中登录的确切错误消息。另外,添加一个代码段,显示您用于发出请求的前端JavaScript代码。感谢您的建议,但不幸的是,它不起作用:(cors在
穿梭机
端点上仍然不起作用,但在其他端点上起作用。我不确定为什么它不适用于该特定路由,您能否尝试显式地添加
cors
此路由。类似于
app.get('/shuttles',cors(corsOptions)),其他参数
。你看到我对这个问题的编辑了吗?我附上了一个chrome devtool的快照,有什么线索吗?我只能看到标题不在那里,你必须在你这边进行一些调试,你是否尝试过显式传递
cors
。谢谢你的建议,但不幸的是它不起作用:(cors在
穿梭机
端点上仍然不起作用,但在其他端点上起作用。我不确定为什么它不适用于该特定路由,您能否尝试显式地添加
cors
此路由。类似于
app.get('/shuttles',cors(corsOptions)),其他参数
。你看到我对这个问题的编辑了吗?我附上了chrome devtool的快照,有什么线索吗?我只能看到标题不在那里,你必须在你的终端进行一些调试,你是否尝试过显式传递
cors
。谢谢你的回复,但不幸的是,它在任何端点上都不起作用:(感谢您的回复,但不幸的是,它在任何端点上都不起作用:(