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

本文介绍了一个使用AngularJS作为前端框架,并通过Node.js搭建后端服务器的项目中遇到的跨域问题及解决方案。作者详细描述了如何通过配置Node.js服务器支持CORS来实现跨域请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

$http.get('http://localhost:3000/')  
               .success(function (data) {  
                 $scope.index = data;  
               })  
               .error(function (data) {  
                  $scope.index = "";  
               });  

服务器端如下:

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.js里写:

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就可以访问了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道门十三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值