1

看了一些相关的视频后,想自己尝试着用angular.js 请求数据,自己写了一个简单的前台请求数据,后台php返回数据的代码。

前台的代码是这样的:

clipboard.png

向data.php发送一个get请求,成功则打印数据,失败则打印失败.

data.php:
clipboard.png

简单的代码,执行时却出错了

clipboard.png

去搜了一下,是因为不允许跨域请求数据,需要在被请求的文件上添加跨域许可
在data.php 的头部添加了 header("Access-Control-Allow-Origin: *"); 表示允许所有跨域请求,数据就成功请求到了

clipboard.png

去网上看时,还有一种跨域的方式,叫jsonp,他是根据用<script></script>标签来请求数据,用<script></script>标签不会受到浏览器的限制

clipboard.png

先定义一个回调函数,用来把请求的数据打印
请求的data2.php是这样写的:

clipboard.png

在浏览器请求这个数据后,他会把callBack("phpData")加载进来,就会调用前面定义的函数

clipboard.png

但是在以前用后台做数据请求时,并没有遇到跨域的问题.
把实例1的允许跨域的头删掉,出现报错:

clipboard.png

但是查看网络的资源请求,发现数据确实是获取到了

clipboard.png
说明服务器接受到了请求并也返回数据了,那为什么还会出错?

去搜了一下,这是浏览器的同源策略,他的目的是为了保证用户信息的安全,防止恶意的网站窃取数据。所以跨域只在浏览器才会有的问题。


鲸冬香
456 声望27 粉丝