请求数据
看了一些相關(guān)的視頻后,想自己嘗試著用angular.js 請求數(shù)據(jù),自己寫了一個(gè)簡單的前臺請求數(shù)據(jù),后臺php返回?cái)?shù)據(jù)的代碼。
前臺的代碼是這樣的:
向data.php發(fā)送一個(gè)get請求,成功則打印數(shù)據(jù),失敗則打印失敗.
data.php:
簡單的代碼,執(zhí)行時(shí)卻出錯(cuò)了
去搜了一下,是因?yàn)椴辉试S跨域請求數(shù)據(jù),需要在被請求的文件上添加跨域許可
在data.php 的頭部添加了 header("Access-Control-Allow-Origin: *"); 表示允許所有跨域請求,數(shù)據(jù)就成功請求到了
去網(wǎng)上看時(shí),還有一種跨域的方式,叫jsonp,他是根據(jù)用<script></script>標(biāo)簽來請求數(shù)據(jù),用<script></script>標(biāo)簽不會受到瀏覽器的限制
先定義一個(gè)回調(diào)函數(shù),用來把請求的數(shù)據(jù)打印
請求的data2.php是這樣寫的:
在瀏覽器請求這個(gè)數(shù)據(jù)后,他會把callBack("phpData")加載進(jìn)來,就會調(diào)用前面定義的函數(shù)
但是在以前用后臺做數(shù)據(jù)請求時(shí),并沒有遇到跨域的問題.
把實(shí)例1的允許跨域的頭刪掉,出現(xiàn)報(bào)錯(cuò):
但是查看網(wǎng)絡(luò)的資源請求,發(fā)現(xiàn)數(shù)據(jù)確實(shí)是獲取到了
說明服務(wù)器接受到了請求并也返回?cái)?shù)據(jù)了,那為什么還會出錯(cuò)?
去搜了一下,這是瀏覽器的同源策略,他的目的是為了保證用戶信息的安全,防止惡意的網(wǎng)站竊取數(shù)據(jù)。所以跨域只在瀏覽器才會有的問題。
總結(jié)
- 上一篇: 阿里云PyODPS 0.7.18发布,针
- 下一篇: 从命令式到响应式(四)