Jquery+Ajax實現(xiàn)跨域訪問
一、跨域的集中方法:
- 服務(wù)器端發(fā)送請求,服務(wù)器作為中繼代理(此方法不理解)
- iframe
- script標簽
通過動過動態(tài)生成script標簽,并將src指向目標源的方式
原生實現(xiàn)方式示例:
var url="www.xxx.baidu.com/aa.js", scriptTag=document.createElement("script"); scriptTag.src=url; document.getElementByTagName("head")[0].appendChild(scriptTag); function showSth(data){ alert(data.a); } ////////////aa.js var aa={"a":"A"}; showSth(aa);
二、jsonp:
1、客戶端
使用script標簽實現(xiàn)跨域訪問、可在url中指定回調(diào)函數(shù)、獲取json數(shù)據(jù)并在指定的回調(diào)函數(shù)中執(zhí)行
jQuery實現(xiàn)jsonp
//$.getJSON var url="wwwa.xxx.baidu.com/aa.js?callback=?"http://使用?作為回調(diào)函數(shù)名,jquey會自動生成隨機名替換?號。 $.getJSON(url,function(jsoon){ alert(json.name+json.Email); }); //$.ajax; var url=www.xxx.baidu.com/aa.asmx?code=xx $.ajax({ url: url, dataType: jsonp, jsonp:”callback”,//傳遞給請求處理程序的參數(shù)名,用來獲取jsonp回調(diào)函數(shù)名(默認為“callback”,自動在URL中加上callback=?參數(shù)) jsonpCallback:”GetUser”,//自定義的jsonp回調(diào)函數(shù)名(默認為jquery自動生成的隨機函數(shù)名),此參數(shù)通常不用設(shè)置 success:function(json){ alert(json.name+json.Email); } });
jQuery 只支持get方式的jsonp實現(xiàn)。
jsonp的缺點:如果返回的數(shù)據(jù)格式有問題或返回失敗了,并不會報錯。
2、服務(wù)端
string jsoncallback = context.Request["callback"]; //如果不指定jsoncallback參數(shù)名,則返回隨機函數(shù)名。 string jsonp=jsoncallback+"("+ new JavaScriptSerializer(new {Name="a",Email="B"})+")" context.Response.ContentType = "text/plain"; context.Response.Write(jsonp);
到此這篇關(guān)于Jquery+Ajax實現(xiàn)跨域訪問的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery結(jié)合css實現(xiàn)返回頂部功能
在本篇文章里小編給大家整理了一篇關(guān)于jquery結(jié)合css實現(xiàn)返回頂部功能的相關(guān)文章,有興趣的朋友們可以實例測試下。2021-08-08JQuery通過AJAX從后臺獲取信息顯示在表格上并支持行選中
這篇文章主要介紹了JQuery通過AJAX從后臺獲取信息顯示在表格上并支持行選中的相關(guān)資料,需要的朋友可以參考下2015-09-09JQuery調(diào)用WebServices的方法和4個實例
你是不是經(jīng)常作這種開發(fā),前端用JS寫邏輯,后端用aspx或者ashx作服務(wù)?你是不是經(jīng)常在請求aspx的時候在查詢字符串中拼接諸如a.aspx?method=getDepartmetn¶m1=1¶m2=2的字符串?2014-05-05jquery插件splitScren實現(xiàn)頁面分屏切換模板特效
這篇文章主要介紹了jquery插件splitScren實現(xiàn)頁面分屏切換模板特效的相關(guān)資料,需要的朋友可以參考下2015-06-06jQuery autocomplate 自擴展插件、自動完成示例代碼
jquery-lib版本是 1.3.2的,該插件是簡單的擴展插件,代碼也比較簡單的封裝。所以看起來也比較簡單不是很費力,當然封裝得也不是很好。2011-03-03Jquery下EasyUI組件中的DataGrid結(jié)果集清空方法
要求選擇“地區(qū)”及“代維公司”后,刷新第一個DataGrid框體,下面為大家介紹下如何清空Jquery下EasyUI組件中的DataGrid結(jié)果集2014-01-01JQuery觸發(fā)radio或checkbox的change事件
在JQuery中,當給radio或checkbox添加一個change事件時,如果它的值發(fā)生變化就會觸發(fā)change事件;本文將詳細介紹如何利用JQuery觸發(fā)Checkbox的change事件需要了解的朋友可以參考下2012-12-12