gpt4 book ai didi

javascript - Angular/Node CORS 问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:06 26 4
gpt4 key购买 nike

我正在构建一个 Web 应用程序,在服务器端使用 Node js,在客户端使用 Angular。

我在不同的域上运行服务器,在其他域上运行客户端。

我的服务器端代码:

var express = require('express');
var app = express();
var http = require("http").createServer(app);
var request = require('request');

app.use(function(req, res, next) {
console.log(req.headers);
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Authorization");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
next();
});

app.get('/api/hello', function(req, res){
var data = {'message': 'Server is running'}
res.jsonp(data);
});

http.listen(5000);

在客户端(Angular)。

angular.controller('myController', function($state, $http){
$http.get('http://localhost:5000/api/hello').success(function(response, status) {
console.log(responce);
}).error( function(error, status) {
console.log(error)
});
});

我的服务器在不同域的端口 5000 上运行,我的客户端在端口 4000 上运行。

当我从客户端发送上述请求时,我在浏览器控制台中收到以下错误,

XMLHttpRequest cannot load http://localhost:5000/api/hello. Response to preflight request doesn't pass access control check: A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:4000' is therefore not allowed access.

我的 ionic 应用程序也有同样的问题。

这背后的原因可能是什么?

我从多个域以及不同的应用程序(例如移动和网络)访问这些 API。

最佳答案

您可以使用cors,如下所示:

安装cors模块

npm install --save cors

服务器代码

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


var app = express();

app.use(cors());

// others code

Angular

angular.controller('myController', function($state, $http){

$http
.get('http://localhost:5000/api/hello')
.then(function(response) {
console.log(responce);
}, function(error, status) {
console.log(error)
});
});

关于javascript - Angular/Node CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650774/

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