gpt4 book ai didi

Node.js CORS 错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:40 25 4
gpt4 key购买 nike

我使用 Node 作为后端服务器,使用 Angular 4 作为前端。我正在尝试通过肥皂协议(protocol)发送查询结果。该功能工作正常,但在浏览器中安装了 CORS PLUGIN。但是如果没有这些插件,我该如何解决它。

我搜索了一些解决方案,并在我的 Node 文件中安装了 CORS 包,并对我的 server.js 文件执行了以下操作。

//## =======BASE SETUP=======

const arangojs = require('arangojs');
const express = require('express');
const aqlQuery = arangojs.aqlQuery;
const bodyParser = require('body-parser');

var cors = require('cors');
var app = express();
app.use(cors());
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});

但这并没有帮助。错误仍然存​​在。我怎样才能解决这个错误。我已经发布了我的服务器端代码如下:

var soap = require('strong-soap').soap;
var http = require('http');
var fs = require('fs');

function dbQuery() {
var response = db.query(aqlQuery `
LET startVertex = (FOR doc IN spec
FILTER doc.serial_no == '"123456abcde"'
LIMIT 2
RETURN doc
)[0]

FOR v IN 1 ANY startVertex belongs_to
RETURN v.ip`, {
bindVar1: 'value',
bindVar2: 'value',
});
console.log("response is " + response);
return response;

}

function main2() {
var result2 = dbQuery();

return result2.then(function(test) {

console.log("test is " + JSON.stringify(test._result));
var IP = test._result.filter(Boolean);
console.log("Ip is " + IP);

var xml = require('fs').readFileSync('check_username.wsdl', 'utf8');
var soap_msg = '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:examples:CheckUserNameService"$
'<soapenv:Header/>' + '<soapenv:Body>' + '<urn:CheckUserNameResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' + '<status xsi:type="xsd:string">' + JSON.stringify(test._result) + '</status>' + '</urn:CheckUserNameResponse>' +
'</soapenv:Envelope>';

var server = http.createServer(function(request, response) {
response.end(soap_msg);
});

var port = 8000;
server.listen(port);
var soapServer = soap.listen(server, '/test', xml);
console.log('SOAP service listening on port ' + port);
});
}
main2();

错误

enter image description here

最佳答案

可能有点晚了,但我希望它能对某人有所帮助。对我来说,我只需添加以下代码即可解决 Node.js 中的 CORS 策略:

app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});

就我而言,当我安装 cors 依赖项后使用 app.use(cors) 时,我的应用程序卡住并出现网络连接错误,因此我只添加了上面的代码,没有任何依赖项,并且它对我来说效果很好。

关于Node.js CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49031758/

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