gpt4 book ai didi

javascript - 如何使用 Node.js 允许 CORS(不使用 Express)

转载 作者:搜寻专家 更新时间:2023-10-31 23:58:53 25 4
gpt4 key购买 nike

我尝试了其他问题的答案并使用了(从 https://gist.github.com/balupton/3696140 更新):

var http = require('http');
var cors = require('cors');

http.createServer(app).listen(3000).use();

function app(request, response) {

response.setHeader('Access-Control-Allow-Origin', '*');
response.setHeader('Access-Control-Request-Method', '*');
response.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
response.setHeader('Access-Control-Allow-Headers', '*');

...

}

它返回:http.createServer(...).listen(...).use 不是函数

更新后它运行了,但我在客户端仍然收到 405 错误。

最佳答案

这里有一个不用插件添加 CORS 的详细答案:代码取自 here.阅读有关 CORS 安全性的信息 here.

const http = require('http');
const port = 8080;

http.createServer((req, res) => {
const headers = {
'Access-Control-Allow-Origin': '*', /* @dev First, read about security */
'Access-Control-Allow-Methods': 'OPTIONS, POST, GET',
'Access-Control-Max-Age': 2592000, // 30 days
/** add other headers as per requirement */
};

if (req.method === 'OPTIONS') {
res.writeHead(204, headers);
res.end();
return;
}

if (['GET', 'POST'].indexOf(req.method) > -1) {
res.writeHead(200, headers);
res.end('Hello World');
return;
}

res.writeHead(405, headers);
res.end(`${req.method} is not allowed for the request.`);
}).listen(port);
// You can also set using the following method
res.setHeader('Access-Control-Allow-Origin', '*'); /* @dev First, read about security */
res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
res.setHeader('Access-Control-Max-Age', 2592000); // 30 days

关于javascript - 如何使用 Node.js 允许 CORS(不使用 Express),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44405448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com