ajax跨域處理----PHP跨域多域名同步登陸技術前段篇

首先什麼是跨域,簡單地理解就是由於JavaScript同源策略的限制,a.com 域名下的js沒法操做b.com或是c.a.com域名下的對象。更詳細的說明能夠看下錶:javascript

URL 說明 是否容許通訊
http://www.a.com/a.js
http://www.a.com/b.js
同一域名下 容許
http://www.a.com/lab/a.js
http://www.a.com/script/b.js
同一域名下不一樣文件夾 容許
http://www.a.com:8000/a.js
http://www.a.com/b.js
同一域名,不一樣端口 不容許
http://www.a.com/a.js
https://www.a.com/b.js
同一域名,不一樣協議 不容許
http://www.a.com/a.js
http://70.32.92.74/b.js
域名和域名對應ip 不容許
http://www.a.com/a.js
http://script.a.com/b.js
主域相同,子域不一樣 不容許
http://www.a.com/a.js
http://a.com/b.js
同一域名,不一樣二級域名(同上) 不容許(cookie這種狀況下也不容許訪問)
http://www.cnblogs.com/a.js
http://www.a.com/b.js
不一樣域名 不容許

本表引用自: http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.htmlhtml

解決跨域訪問頁面對象的問題有6種方法,詳見 http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html 。 本文僅介紹JQuery jsonp方法。java

Jquery Jsonpjquery

jQuery.ajax方法:ajax

jQuery(document).ready(function(){
                $.ajax({
                    type: "get",
                    async: false,
                    url: "http://www.geonames.org/postalCodeLookupJSON?postalcode=10504&country=US&callback=?",
                    dataType: "jsonp",
                    jsonp: "callbackparam",//傳遞給請求處理程序或頁面的,用以得到jsonp回調函數名的參數名(默認爲:callback)
                    jsonpCallback: "success_jsonpCallback",//自定義的jsonp回調函數名稱,默認爲jQuery自動生成的隨機函數名
                    success: function(json){                    
                        $("body").append(json.postalcodes[0].adminCode2);                        
                        
                    },
                    error: function(){
                        alert('failed');
                    }
                });
            });

Jquery.getJSON方法:json

jQuery.getJSON("http://local.yahooapis.com/LocalSearchService/V3/localSearch?appid=YahooDemo&query=pizza%20&zip=10504&results=2&output=json", function(data){
                alert("Symbol: " + data.ResultSet.totalResultsAvailable);
        $("body").append(data.ResultSet.totalResultsAvailable);
            });


網上也有人開發了jquery.jsonp插件,你們也能夠研究一下。
 api

參考文獻:跨域

1, Cross-domain communications with JSONP, Part 1: Combine JSONP and jQuery to quickly build powerful mashups cookie

http://www.ibm.com/developerworks/library/wa-aj-jsonp1/app

2, JQuery.ajax

http://api.jquery.com/jQuery.ajax/

3,  JQuery.getJSON

http://api.jquery.com/jQuery.getJSON/

4, JavaScript跨域總結與解決辦法

http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html

5, 跨域請求之jQuery的ajax jsonp的使用解惑

http://www.cnblogs.com/know/archive/2011/10/09/2204005.html

6,  JavaScript: Use a Web Proxy for Cross-Domain XMLHttpRequest Calls

http://developer.yahoo.com/javascript/howto-proxy.html

相關文章
相關標籤/搜索