当前位置: 首页 > 知识库问答 >
问题:

正在获取express server以接受CORS请求

桑坚成
2023-03-14

我有我的快递服务器运行在http://localhost:3000(我称之为网络服务器)我有另一个应用程序运行在localhost:8100(我称之为简单的应用程序)

当我的应用程序调用Web服务器时,我收到消息:

“XmlHttpRequest无法加载http://localhost:3000/auth/facebook. 对飞行前请求的响应未通过访问控制检查。当凭据标志为true时,“访问控制允许来源”中不能使用通配符“*”。来源'http://localhost:81000“因此不允许使用acecss”

此消息显示在浏览器控制台中。

我在我的节点网络服务器的中间件中设置了以下选项

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

在阅读了一些stackoverfow问题后,我还添加了以下内容:

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

然而,这并不能解决问题。

共有3个答案

董霖
2023-03-14

您还需要在标题中允许OPTIONS方法。

我有这个中间件的cors:

module.exports = function (req, res, next) {
    // CORS headers
    res.header("Access-Control-Allow-Origin", "YOUR_URL"); // restrict it to the required domain
    res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
    // Set custom headers for CORS
    res.header("Access-Control-Allow-Headers", "Content-type,Accept,X-Custom-Header");

    if (req.method === "OPTIONS") {
        return res.status(200).end();
    }

    return next();
};

另外,您得到的错误是由于跨来源请求是如何工作的。长话短说,浏览器可能首先使用方法OPTIONS发送pre-flight请求,以获取允许的来源、标题和方法。因此,对于这个请求,您应该只返回访问控制-*头。如果飞行前运行正常,浏览器将继续执行原始请求。

你可以在这里找到更多信息。

何建中
2023-03-14

我个人更喜欢cors模块。代码非常简单:

var whitelist = [
    'http://0.0.0.0:3000',
];
var corsOptions = {
    origin: function(origin, callback){
        var originIsWhitelisted = whitelist.indexOf(origin) !== -1;
        callback(null, originIsWhitelisted);
    },
    credentials: true
};
app.use(cors(corsOptions));
松钊
2023-03-14

我使用cors并实现它,所以它非常简单

var-cors=require('cors')

app.use(cors({origin:true,credentials:true}))

 类似资料:
  • 我正在使用ThinkTecture.IdentityModel nuget包为MVC Web应用程序中的WebAPI控制器启用CORS。目前,我只担心文章,但让我知道任何问题与其他动词。这在运行IIS Express服务器时有效。 在处理AppHarbor部署时,它不起作用。nginx似乎不会将选项请求传递给我的代码。还需要什么才能让它在Appharbor上运行? 选项$PATH HTTP/1.1

  • 问题内容: 这是我的javascript: 这是我的控制器: spring-servlet.xml 收到此错误: 标头: 响应标题 请求标题 有趣的注意事项: 我收到406错误,但休眠查询同时起作用。 每当我在保管箱中更改选择时,这就是tomcat日志所说的: 可能是什么问题?之前在SO中有两个类似的问题,我在那里尝试了所有被接受的提示,但是我猜它们没有起作用… 有什么建议?随意问的问题… 问题答

  • 在做了一些研究后,我发现这是一个CORS问题。我正在使用谷歌应用程序引擎与Python。这个错误是我可以修复的,还是API的bug?我已经设法用这个API做了一个POST请求,没有问题。我已经阅读了很多关于CORS的信息,但还没有找到解决这个问题的方法。 下面是GET请求的Javascript代码,它只是从Trello API复制/粘贴的,所以我不确定哪里出了问题:

  • 我已经安装了cordova-plugin-whitelist并将其配置如下: 任何洞察力都将不胜感激。

  • 问题内容: 我正在将带有JSON正文的POST请求发送到Django服务器(相当标准)。在服务器上,我需要使用进行解码。 问题是如何获取字符串格式的请求正文? 我目前有以下代码: 但是,这给出了一个错误。 如何以正确的编码将请求的主体作为字符串检索? 问题答案: 请求主体,是一个字节字符串。在Python 3中,将仅接受unicode字符串,因此您必须先进行解码,然后再将其传递给。 在Python

  • 问题内容: 因为数据量不是我的Web应用程序需要加载的大小,它有时会变得很慢,因此我决定添加一些jQuery ajax函数以根据请求加载某些数据,然后将其保存在缓存中。 我想知道的是如何限制任何来自本地主机/相同服务器/相同ip的请求或仅来自本地/相同服务器/相同ip的请求,这样才能避免从外部对我的应用程序进行任何调用? 这意味着我的返回数据的php函数仅应从本地主机请求返回数据。 我的Web应用