AngularJs解決跨域簡單介紹
下面直接進入主題介紹一下如何解決此問題。先看客戶端是如何請求資料的:
程式碼是寫在a.com域名下面的
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script src="angular.min.js"></script> <script type="text/javascript"> var app = angular.module('app', []); app.controller('appCtrl', ['$scope', function ($scope) { $http({ method: 'JSONP', url: 'http://www.b.com/test.php?callback=JSON_CALLBACK', }).success(function (msg) { console.log(data); }); //或者 $http .jsonp('http://www.b.com/test.php?callback=JSON_CALLBACK') .success(function (msg){ console.log(msg); }); }]); </script> </head> <body> </body> </html>
我們看到,這裡是直接以jsonp的形式進行跨域請求的,其操作同jquery中對跨域的請求方式如出一轍。
注意,我們的callback是固定的,即JSON_CALLBACK,儘量不要去做任何改動
我們再看服務端b.com中的test.php對請求資料的處理方式,這裡以原生php的方式做參考
[PHP] 純文字檢視 複製程式碼$callBack = isset($_GET['callback']) ? $_GET['callback'] : DEFAULT_CALLBACK; exit($callBack.'('.json_encode($data).')');
我們再回來看看客戶端console.log記錄的結果:
由此可見,跨域已經成功,總結如下:
(1).客戶端跨域請求的url後追加的引數是?callback=JSON_CALLBACK,引數callback的值指定為JSON_CALLBACK,注意是大寫,就是JSON_CALLBACK不要作任何改動,感覺這裡是個不小的坑,?callback的值稍作改動,客戶端就需要全域性定義callback函式,而且還特麼怎麼再傳給$scope處理?為了避免不必要的麻煩,這裡建議就這麼搞。
(2).再看服務端,服務端需要指定$callBack = $_GET['callback'];接收callback,而且你還會發現接收的callback不是我們客戶端寫的?callback的值,客戶端指定JSON_CALLBACK應該是為了觸發angularJs內部的機制。
相關文章
- ajax跨域請求簡單介紹跨域
- 使用CORS實現ajax跨域簡單介紹CORS跨域
- 實現跨域iframe介面方法呼叫 簡單介紹跨域
- 簡單的瞭解跨域以及解決方案跨域
- angularJS的router用法簡單介紹AngularJS
- 實現瀏覽器跨域解決方案介紹瀏覽器跨域
- javascript作用域簡單介紹JavaScript
- ajax實現跨域請求程式碼例項簡單介紹跨域
- javascript作用域和作用域鏈簡單介紹JavaScript
- AngularJS實現的表單編輯提交功能簡單介紹AngularJS
- js 函式作用域鏈簡單介紹JS函式
- 跨域原理以及跨域解決方案跨域
- 介紹什麼是同源和什麼是跨域,以及三種解決跨域問題的路徑跨域
- 前端跨域知識簡介前端跨域
- 超簡單的前端跨域、前後端分離解決方案前端跨域後端
- java註解的簡單介紹Java
- JavaScript this指向解綁簡單介紹JavaScript
- 解決 ajax 跨域跨域
- Django解決跨域Django跨域
- jsonpGet,跨域如此簡單JSON跨域
- AngularJs動態載入模組和依賴注入簡單介紹AngularJS依賴注入
- 簡單介紹Nginx tp3.2.3 404問題解決方案Nginx
- Apache Kafka簡單介紹 - 解道JdonApacheKafka
- SVG簡單介紹SVG
- HTML簡單介紹HTML
- ActiveMQ簡單介紹MQ
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- SCSS 簡單介紹CSS
- UICollectionView 簡單介紹UIView
- css簡單介紹CSS
- iris 跨域解決方案跨域
- Laravel 跨域解決方案Laravel跨域
- Ajax 跨域解決方案跨域
- 解決跨域問題跨域
- 前端跨域有哪些種方法及介紹?前端跨域
- Nginx解決前端跨域問題 CORS跨域配置Nginx前端跨域CORS