angularjs 控制器不能访问nodejs 3000端口,跨域访问

目前做的一个项目,前端采用的是angularjs,后端nodejs做服务器。

我尝试使用接下里的方式来发起对nodejs服务器的请求:

$http.get(':3000/').success(function (data) {$scope.index = data;}).error(function (data) {$scope.index = "";});</span>服务器端我简化如下:var app= require('express');/* GET home page. */app.get('/', function(req, res, next) {res.send("hello world");});使用IE11浏览器,能够成功返回hello world,但是Firefox和Chrome却不能,F12打开调试器,发现是跨域访问造成的,,属于浏览器保护机制。

我的解决办法是,是使用CORS(跨域资源共享(Cross Origin Resource Sharing,CORS)是一个解决跨域问题的好方法,从而可以使用XHR从不同的源加载数据和资源。)

//nodejs服务端跨域访问设置

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

然后,Firefox和Chrome就可以成功访问了。

我觉得以下几篇文章,对我解决这个问题帮助很大,推荐给大家:

世上再美的风景,都不及回家的那段路。

angularjs 控制器不能访问nodejs 3000端口,跨域访问

相关文章:

你感兴趣的文章:

标签云: