angularjs 跨域访问问题

来源:互联网 发布:a star算法的流程图 编辑:程序博客网 时间:2024/06/08 06:52

最近使用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的








0 0
原创粉丝点击