* 1.什么是跨域?
* 不同域名之间进行访问。
* 2.同源策略?
* 协议,主机地址,端口都一致。
* http://localhost:8080/index
* http://www.baidu.com
* http://www.sina.cn
*
* 3.是谁造成了跨域?
* 是浏览器造成的跨域。
* 4.为什么会有跨域?
* 为了数据的安全。
*
* 5.你在开发当中是如何解决跨域问题?
* jsonp解决跨域
* 往浏览器当中安装插件
*
* 5.jsonp与Ajax有关系嘛?
* Ajax它是javascipt提供的方法,进行数据的请求。使用它,请求数据时,跨域时,拿到不数据。
* 解决跨域的一种方案。
*
* 6.jsonp原理是怎么做的?
*
* 借助标签的src属性进行数据请求。
* 1.使用src,请求数据
* <script src="http://datainfo.duapp.com/shopdata/getGoods.php?callback=callback">
* 2.在本地声明一个方法
* function callback(args) {
console.log(args);
}
3。要在服务端要处理跨域
$res = $_GET['callback'];
echo $res."('我是服务的数据')";
*
* */
<script src=""></script>
这种引用方式引用的代码会被浏览器直接执行
通过 php 桥接跨域
实际上并非跨域,用 Php 文件引入进来,同源下执行 Php 文件,所以并非跨域
$http 跨域
app.controller('myController',['$scope','$http',function($scope,$http){
$http({
url:'www.xxx.xx',
method:'get',
params:{
callback:'JSON_CALLBACK'
}
})
}])
angularJS 内部帮助做了两件事
- 创建了一个名为 callback 的函数
function callback(){}
- 并且使用
<script src=''></script>
方式请求数据会以get
方式传递一个参数?callback=callback
- 后台会处理这个传过来的
callback
拼接之后以 callback 函数的参数形式传递出去
网友评论