在拉京東城市選擇的基礎數據時候,遇到被服務器拒絕的情況,也就是Ajax跨域問題
2. json和jsonp說的直白一點,在我們做ajax異步的一些功能的時候,一定會或多或少的遇到兩個問題,(1、數據的交換。2、跨域問題)
JSONP的最基本的原理是:動態添加一個
<script type="text/javascript">function jsonpCallback(result) { alert(result.msg); } </script><script type="text/Javascript" src=" http://crossdomain.com/jsonServerResponse?jsonp= jsonpCallback"></script>
從紅色的地方可以看出,兩個名字要一直,不過一般采用callback然后后面加一個“?”此時jquery會自動生成一個函數名,這樣可以做到發送很多請求的時候,并不會互相影響。同源策略 :即JavaScript只能訪問與包含它的文檔在同一域下的內容。jsonp可以跨越同源策略,當我們使用了jsonp,將會是另外一種協議通信了。JSONP的優點是:它不像xmlHttPRequest對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要xmlhttpRequest或ActiveX的支持;并且在請求完畢后可以通過調用callback的方式回傳結果。JSONP的缺點則是:它只支持GET請求而不支持POST等其它類型的HTTP請求;它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。
3.使用方法$.getJSON(" http://跨域的dns/document!searchJSONResult.action?name1="+value1+"&jsoncallback=?", function(json){ if(json.屬性名==值){ // 執行代碼 }});$.ajax({ async:false, url: http://跨域的dns/document!searchJSONResult.action, type:"GET", dataType:'jsonp',
通常情況一般是這兩種使用方法,在跨域問題上,非常簡單。
新聞熱點
疑難解答