angularjs 跨域访问问题

本文介绍如何解决AngularJS应用中遇到的CORS跨域访问问题,包括服务器端设置Access-Control-Allow-Origin及Access-Control-Allow-Credentials,利用cookie进行身份验证的方法,以及AngularJS中配置$httpProvider以支持携带凭证的请求。

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

最近使用angular js 访问restful 后台时需要考虑CORS跨域访问的问题,angular js 的http访问本身也是ajax,在跨域访问时需要做响应的设置

1. 服务器端设置

当跨域访问时,服务器端需要设置响应的header,  

Access-Control-Allow-Origin: * 
表示该资源运行所有的外域进行访问,当然,也可以只允许某些域访问。   

 2. 使用cookie进行验证的时候,服务端的response中的header中会发送一个set-cookie字段,将保存在浏览器的cookie中,当用户发送request的时候可以直接使用改服务端域名下的cookie,作为 request header中的字段,从而服务端会根据cookie信息进行验证,决用户是否有权利访问该资源。  

3. angular js 中,需要对$httpProvider进行设置

    $httpProvider.defaults.withCredentials = true;
在发送request时会自动将cookie信息加入到request的header中,此时需要在服务端设置 头部信息

Access-Control-Allow-Credentials:true
如果客户端设置了withCredential = true, 但是服务器的response中没有

Access-Control-Allow-Credentials:
true的话,浏览器会自动忽略该response。

4. angular js 中默认options方法是不带credential的








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值