angular怎么实现跨域请求?
1、JSONP
JSONP的原理是通过 <script> 标签发起一个GET请求来取代XHR请求。JSONP生成一个<script> 标签并插到DOM中,然后浏览器会接管并向 src 属性所指向的地址发送请求。当服务器返回请求时, 响应结果会被包装成一个JavaScript函数, 并由该请求所对应的回调函数调用。
AngularJS在$http服务中提供了一个JSONP辅助函数。 通过$http服务的jsonp方法可以发送请求,如下所示:
$http .jsonp("https://api.github.com?callback=JSON_CALLBACK") .success(function(data) { // 数据 });
因为请求是由 <script> 标签发送的,所以这个方法只能发送GET请求。
2、使用 CORS
CORS规范简单地扩展了标准的XHR对象,以允许JavaScript发送跨域的XHR请求。它会通过预检查(preflight)来确认是否有权限向目标服务器发送请求。预检查可以让服务器接受或拒绝来自全部服务器、特定服务器或一组服务器的请求。这意味着客户端和服务端应用需要协同工作,才能向客户端或服务器发送数据。
首先需要告诉AngularJS我们正在使用CORS。使用 config()方法在应用模块上设置两个参数以达到此目的。
angular.module('myApp', []) .config(function($httpProvider) { $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers .common['X-Requested-With']; });
接下来,需要服务端设置响应头,这个需要和后端人员镜像
Access-Control-Allow-Origin 这个头的值可以是与请求头的值相呼应的值,为*表示允许接收从任何来源发来的请求。
Access-Control-Allow-Credentials 默认情况下,CORS请求不会发送cookie。如果服务器返回了这个头,那么就可以通过将withCredentials 设置为 true 来将cookie同请求一同发送出去。
接下来就可以使用下面的请求进行跨域请求了
$http .get("https://api.github.com") .success(function(data) { // 数据 });
3、服务器端代理
这种方式更多的应该是后端来做的实现向所有服务器发送请求的最简单方式是使用服务器端代理。 这个服务器和页面处在同一个域中(或者不在同一个域中但支持CORS) ,做为所有远程资源的代理。可以简单地通过使用本地服务器来代替客户端向外部资源发送请求, 并将响应结果返回给客户端。通过这种方式,老式浏览器不必使用需要发送额外请求的CORS(只有现代浏览器支持CORS)也能发送跨域请求,并且可以在浏览器中采用标准的安全策略。
以上就是angular怎么实现跨域请求?的详细内容,更多请关注易知道|edz.cc其它相关文章!
相关内容
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
斑马打印机官方网站|斑马标签打印机官网
斑马打印机官方网站|斑马标签打印机官网,,斑马标签打印机官网...
-
wps单独打开标签|wps单独打开多个文档,不喜欢在
wps单独打开标签|wps单独打开多个文档,不喜欢在一个窗口显示...
-
火狐打开新标签页设置|火狐怎么添加标签页
火狐打开新标签页设置|火狐怎么添加标签页,,1. 火狐怎么添加标...
-
当前页的脚本失败的解决方案_计算机错误
当前页的脚本失败的解决方案_计算机错误,,核心提示:最近打开网...
-
JS动态添加的标签无法绑定事件解决方案~~~
JS动态添加的标签无法绑定事件解决方案~~~,标签,动态,今天用aj...
-
标签尺寸设置|标签的尺寸
标签尺寸设置|标签的尺寸,,1. 标签的尺寸有很多款尺寸的保鲜盒...
-
个性标签在哪里设置|添加个性标签
个性标签在哪里设置|添加个性标签,,1. 添加个性标签微信标签类...
-
Safari+Glims快速切换标签页
Safari+Glims快速切换标签页,,对于键盘控制的玩家来说,Chrome的...
-
设置模板名|标签模板设置
设置模板名|标签模板设置,,1. 标签模板设置左上脚有一个齿轮,...
-
电脑关机整人脚本|电脑整人代码怎么关闭
电脑关机整人脚本|电脑整人代码怎么关闭,,电脑整人代码怎么关...
-
设置为主页|如何将标签页设置为主页
设置为主页|如何将标签页设置为主页,,如何将标签页设置为主页...
-
怎么隐藏Win10任务栏文字标签及搜索框?
怎么隐藏Win10任务栏文字标签及搜索框?,任务栏,文字,使用Win10...
-
chrome新标签页设置|chrome新标签页怎么设置
chrome新标签页设置|chrome新标签页怎么设置,,1. chrome新标签...
-
问道手电脑游脚本辅助|问道手游模拟器辅助脚本
问道手电脑游脚本辅助|问道手游模拟器辅助脚本哪个好用,,问道...