JQuery 的跨域方法 可跨任意網站

NO IMAGE

原文地址為:JQuery 的跨域方法 可跨任意網站

因發現有不少博友發園內簡訊問及JS的跨域問題,我想很多程式設計師的腦海裡面還認為JS是不能跨域的,其實這是一個錯誤的觀點;有很多人在網上找其解決方法,教其用IFRAME去解決的文章很多,真有那麼複雜嗎?其實很簡單的,如果你用JQUERY,一個GETJSON方法就搞定了,而且是一行程式碼搞定。

下面開始貼出方法。

        
//
跨域(可跨所有域名)

        $.getJSON(

http://user.hnce.com.cn/getregion.aspx?id=0&jsoncallback=?

,
function
(json){
         
         
//
要求遠端請求頁面的資料格式為: ?(json_data)  

         
//
例如:

         
//
?([{“_name”:”湖南省”,”_regionId”:134},{“_name”:”北京市”,”_regionId”:143}])

         alert(json[
0
]._name);

         });  

注意,getregion.aspx中,在輸出JSON資料時,一定要用Request.QueryString[“jsoncallback”],將獲取的內容放到返回JSON資料的前面,假設實際獲取的值為42342348,那麼返回的值就是 42342348([{“_name”:”湖南省”,”_regionId”:134},{“_name”:”北京市”,”_regionId”:143}])

因為getJSON跨域的原理是把?隨機變一個方法名,然後返回執行的,實現跨域響應的目的。

具體getJSON的使用說明,請參考JQUERY手冊。

 

下面一個是跨域執行的真例項子:

961ddebeb323a10fe0623af514929fc1.jpe程式碼

<
script src
=

http://common.cnblogs.com/script/jquery.js

 type
=

text/javascript

><
/
script>

<
script type
=

text/javascript

>

//
跨域(可跨所有域名)

    $.getJSON(

http://e.hnce.com.cn/tools/ajax.aspx?jsoncallback=?

, { id: 
0
, action: 

jobcategoryjson

 }, 
function
(json) {

        alert(json[
0
].pid);
        alert(json[
0
].items[
0
]._name);

    }); 
<
/
script>

 

轉載請註明本文地址:JQuery 的跨域方法 可跨任意網站