亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > AJAX > 正文

JSONP跨域GET請求解決Ajax跨域訪問問題

2024-09-01 08:33:27
字體:
來源:轉載
供稿:網友
本文主要是介紹了JSONP跨域是如何實現(xiàn)的,并探討下JSONP跨域的原理。以及采用JSONP跨域GET請求解決Ajax跨域訪問問題,需要的朋友可以參考下
 
 

前幾天,工作上有一新需求,需要前端web頁面異步調用后臺的Webservice方法返回信息。實現(xiàn)方法有多種,本例采用jQuery+Ajax,完成后,在本地調試了一切ok,但是部署到服務器上以后就出現(xiàn)問題了,后臺服務調用沒有響應,怎么回事?代碼沒怎么改動,唯一修改的地方就是jQuery的ajax方法中的url地址。難道是這里的問題,經過檢查和調試,發(fā)現(xiàn)原來是同源策略在作怪,我們知道,JavaScript或jQuery是在Web前端開發(fā)中經常使用的動態(tài)腳本技術。在JavaScript中,有一個很重要的安全性限制,被稱為“Same- Origin Policy”(同源策略)。這一策略對于JavaScript代碼能夠訪問的頁面內容做了很重要的限制,即JavaScript只能訪問與包含它的文檔或腳本 在同一域名下的內容。不同域名下的腳本不能互相訪問,即便是子域也不行。關于同源策略,讀者可百度更詳細的解釋,這里不再贅述。

但是有時候又不可避免地需要進行跨域操作,這時候“同源策略”就是一個限制了,怎么辦呢?采用JSONP跨域GET請求是一個常用的解決方案,下面我們來看一下JSONP跨域是如何實現(xiàn)的,并探討下JSONP跨域的原理。

這里提到了JSONP,那有人就問了,它同JSON有什么區(qū)別不同和區(qū)別呢,接下我們就來看看,百度百科有以下說明:

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(網絡傳輸速度快)。

JSONP(JSON with Padding)是JSON的 一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據訪問的問題。由于同源策略,一般來說位于 server1.example.com 的網頁無法與不是 server1.example.com的服務器溝通,而 HTML 的<script> 元素是一個例外。利用 <script> 元素的這個開放策略,網頁可以得到從其他來源動態(tài)產生的 JSON 資料,而這種使用模式就是所謂的 JSONP。用 JSONP 抓到的資料并不是 JSON,而是任意的JavaScript,用 JavaScript 直譯器執(zhí)行而不是用 JSON 解析器解析。

到這里,應該明白了,JSON是一種輕量級的數(shù)據交換格式,像xml一樣,是用來描述數(shù)據間的。JSONP是一種使用JSON數(shù)據的方式,返回的不是JSON對象,是包含JSON對象的javaScript腳本。

那JSONP是如何工作的呢,我們知道,由于同源策略的限制,XmlHttpRequest只允許請求當前源(域名、協(xié)議、端口)的資源。若要跨域請求出于安全性考慮是不行的,但是我們發(fā)現(xiàn),Web頁面上調用js文件時則不受是否跨域的影響,而且擁有”src”這個屬性的標簽都擁有跨域的能力,比如<script>、<img>、<iframe>,這時候,聰明的程序猿就想到了變通的方法,如果要進行跨域請求, 通過使用html的script標記來進行跨域請求,并在響應中返回要執(zhí)行的script代碼,其中可以直接使用JSON傳遞 javascript對象。即在跨域的服務端生成JSON數(shù)據,然后包裝成script腳本回傳,著不就突破同源策略的限制,解決了跨域訪問的問題了么。

下面我們就看下怎么實現(xiàn):

前端代碼:

 

復制代碼代碼如下:

function CallWebServiceByJsonp() {
        $("#SubEquipmentDetails").html('');
        $.ajax({
            type: "GET",
            cache: false,
            url: "http://servername/webservice/webservice.asmx/GetSingleInfo",
            data: { strCparent: $("#Equipment_ID").val() },
            dataType: "jsonp",
            //jsonp: "callback",
            jsonpCallback: "OnGetMemberSuccessByjsonp"
        });
}
function OnGetMemberSuccessByjsonp(data) {
    //處理data
    alert(data);
}

 

后端的WebService代碼:

 

復制代碼代碼如下:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public void GetSingleInfo(string strCparent)
{
    string ret = string.Empty;
    HttpContext.Current.Response.ContentType = "application/json;charset=utf-8";
    string jsonCallBackFunName = HttpContext.Current.Request.Params["callback"].ToString();
    //string jsonCallBackFunName1 = HttpContext.Current.Request.QueryString["callback"].Trim();
    //上面代碼必須
    //中間代碼執(zhí)行自己的業(yè)務操作,可返回自己的任意信息(多數(shù)據類型)
    BLL.equipment eq_bll = new BLL.equipment();
    List<Model.equipment> equipmentList = new List<Model.equipment>();
    equipmentList = eq_bll.GetModelEquimentList(strCparent);
    ret = JsonConvert.SerializeObject(equipmentList);
    //下面代碼必須
    HttpContext.Current.Response.Write(string.Format("{0}({1})", jsonCallBackFunName, ret));
    HttpContext.Current.Response.End();
}

 

如上所示,前端的CallWebServiceByJsonp方法采用jQuery的ajax方法調用后端的Web服務GetSingleInfo方法,后臺的GetSingleInfo方法,使用前端的回調方法OnGetMemberSuccessByjsonp包裝后臺的業(yè)務操作的JSON對象,返回給前端一段javascript片段執(zhí)行。巧妙的解決了跨域訪問問題。

JSONP的缺點:

JSONP不提供錯誤處理。如果動態(tài)插入的代碼正常運行,你可以得到返回,但是如果失敗了,那么什么都不會發(fā)生。

小伙伴們是否對JSONP跨域GET請求解決Ajax跨域訪問問題有所了解了呢,本文的思路還是非常不錯的,推薦給大家。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
欧美一区二区三区在线观看| 国产精品久久久久毛片软件| 99视频在线精品| 亚洲人成电影网站色www| mm131午夜| 亚洲免费在线观看av| 97在线中文字幕| 最近中文字幕免费mv视频多少集| 国产美女特级嫩嫩嫩bbb片| 亚洲图片欧美色图| 日本中文字幕不卡免费| 亚洲www色| 欧美日韩在线不卡视频| 女人体1963| 欧美日韩精品免费观看视频完整| 国模精品娜娜一二三区| 国产裸体视频网站| 亚洲自拍另类欧美丝袜| 国产亚洲第一伦理第一区| 亚洲精品国产精品久久清纯直播| 精品日韩99亚洲| 国产精品亚洲а∨天堂免在线| 先锋影音av资源站| 欧美亚洲国产视频| 亚洲欧洲日夜超级视频| 国产精品xxxxx| 黑人一区二区| 韩国精品视频在线观看| 哺乳挤奶一区二区三区免费看| 91网站在线观看视频| 性欧美亚洲xxxx乳在线观看| 不卡在线视频中文字幕| www.四虎在线| 久久精品动漫| 欧美高清69hd| 美女视频久久黄| 天堂网在线免费观看| 精品国产乱码久久久久久蜜臀网站| www.亚洲免费视频| 夜色视频网站| 91精品国产高清久久久久久久久| 精品国产欧美日韩| 国产99久久久| 欧美最猛性xxxxx直播| 国产超碰人人模人人爽人人添| 国产在线视频自拍| 国产男女无套免费网站| 久久久亚洲成人| 欧美日韩精品欧美日韩精品一| 69堂成人精品免费视频| 午夜免费欧美电影| 精品国产乱码久久久久软件| 国产又猛又黄又爽| 视频在线观看99| 国产亚洲字幕| 精品人妻一区二区三区潮喷在线| 国产男女猛烈无遮挡a片漫画| 黑人40厘米全进去| 69堂成人精品免费视频| 综合自拍亚洲综合图不卡区| 亚洲经典自拍| 国模私拍视频在线| 97精品国产露脸对白| 久久全球大尺度高清视频| 悠悠资源网久久精品| 国产电影一区二区三区| 国产美女久久久久久| 国产精品久久久久久亚洲调教| 久久激情一区| 成 人免费视频播放| 国产视频123区| 高清电影在线免费观看| 欧美亚洲人成在线| 成人免费视频国产在线观看| 欧美日韩在线一二三| 亚洲欧美日韩小说| 精品久久久网站| 日韩精品电影网| 亚洲免费大片在线观看| 大尺度做爰床戏呻吟舒畅| 123成人网| 97精品在线视频| 1024日韩| 无码人妻精品一区二区三| 日本韩国精品一区二区| 成人午夜免费影院| 91亚洲欧美| 在线亚洲自拍| h版电影在线播放视频网站| 日韩成人av一区| 在线欧美一区二区| 国产v亚洲v天堂无码| 亚洲无限乱码一二三四麻| jizzzz日本| 久久国产视频播放| 国产精品对白久久久久粗| 久久精品国产一区二区三区| 我不卡神马影院| 日本成人激情视频| 第84页国产精品| 亚洲欧美日本在线观看| 亚洲国产视频网站| 精品国产凹凸成av人导航| 日韩av一区二区三区在线观看| 日本三级电影免费观看| 少妇人妻精品一区二区三区| 久久精品国产一区二区三区日韩| 3d成人动漫在线| 日韩黄色免费网站| 久久这里只有精品国产| 精品色蜜蜜精品视频在线观看| 91极品视觉盛宴| 欧美—级高清免费播放| 天堂中文字幕在线观看| 日韩免费视频线观看| 特级毛片在线| 国产精品精品软件男同| 欧美性xxxxx极品视频| 久久精品在线观看| 先锋av影院| 免费毛片aaaaaa| 成人蜜桃视频| 欧美人成在线观看网站高清| 尤物视频在线| 色999日韩自偷自拍美女| 亚洲免费在线| 国产日产精品久久久久久婷婷| 国产精品进线69影院| 日本不卡一区二区三区四区| 亚洲一区高清| 亚洲一卡二卡三卡四卡无卡网站在线看| 91精彩视频在线播放| 国产高清免费在线| 亚洲欧美日本视频在线观看| 免费人成网站在线观看欧美高清| 中文乱码字幕av网站| 国产成人精品最新| 国产91社区| 久久视频在线直播| 日韩欧美中文字幕一区二区三区| av片哪里在线观看| 欧美激情在线| 456亚洲精品成人影院| 三级全黄做爰视频| 色呦呦日韩精品| 成人黄网18免费观看的网站| 99精品久久久久| 在线观看国产精品淫| 91麻豆精品| 在线免费观看麻豆| 午夜日韩在线观看| 亚洲精品精品亚洲| 亚洲一线二线三线久久久| 特黄aaaaaaaaa真人毛片| 亚洲春色一区二区三区| 日韩不卡免费视频| 精品亚洲永久免费精品| 日本国产高清不卡| 久久国产综合视频| 国产一区二区三区综合| 青娱乐国产精品视频| 欧美做a欧美| 中文字幕在线看人| 一区二区三区欧美久久| 911精品产国品一二三产区| 男人久久天堂| 水蜜桃一区二区| 麻豆精品视频在线观看视频| 亚洲精品免费在线视频| 制服丝袜亚洲精品中文字幕| 九色在线视频| 亚洲成人免费网站| 日韩欧美视频在线播放| 国产成人免费观看视频| 日韩成人高清在线| 99久久无色码| yiren22综合网成人| 免费不卡欧美自拍视频| 国产精品一区二区三区美女| 91福利国产精品| 青青久在线视频免费观看| 国产精品一区二区女厕厕| 成年人免费观看的视频| 国产成人午夜视频网址| 欧美国产中文高清| 精品欧美色视频网站在线观看| 日韩毛片一区| 曰批又黄又爽免费视频| 亚洲综合电影一区二区三区| 亚洲999一在线观看www| 亚洲国产成人av在线| 国产av一区二区三区精品| 亚洲图片在区色| 看av免费毛片手机播放| 中文亚洲av片在线观看| 日本一区二区三区高清不卡| 正在播放日韩精品| 三级影片在线看| 国产伦精品一区二区三区免| 国产中文字幕视频| 成年人免费大片| 亚洲狼人综合网| 91在线国产剧情| 欧美性色综合网| 一本色道久久88亚洲精品综合| 懂色av蜜臀av粉嫩av分享吧| a欧美人片人妖| 女人18毛片毛片毛片毛片区二| 成年女人a毛片免费视频| 成人禁用看黄a在线| 久久久噜噜噜久久久| 久久精品国产第一区二区三区| 日本视频二区| 欧美一区二区三区高清视频| 手机精品视频在线观看| 美女福利网站视频在线观看| 亚洲综合影视| 国产成人一二| 欧美久久久久久久久久久久久| 亚欧精品一区| 中文字幕久久午夜不卡| 亚洲欧洲美洲综合色网| 国产婷婷97碰碰久久人人蜜臀| 国产精品无遮挡| 性欧美视频videos6一9| 校园春色亚洲色图| 丁香花免费高清完整在线播放| 日韩av手机版| 无码h黄肉3d动漫在线观看| 日本美女高清在线观看免费| 国产999精品久久久影片官网| 国产激情二区| 国产吧在线视频| 久久久久久久久久久久国产| 动漫成人在线| 中国老太性bbbxxxx| 草久视频在线观看| 日韩电影免费观看高清完整版| 欧美性猛交xxxx乱大交极品| 国产精品高颜值在线观看| ririsao中文字幕免费| 欧美一区二区综合| 国产农村老头老太视频| 91精品国产自产精品男人的天堂| 国产在线拍揄自揄拍视频| 成人在线视频亚洲| 三级网站在线看| 国产美女91呻吟求| 一区二区三区无毛| 麻豆成人小视频| 香蕉国产在线视频| 精品久久九九| 97香蕉碰碰人妻国产欧美| av资源吧首页| 精品久久免费视频| 国偷自产av一区二区三区小尤奈| 天天亚洲美女在线视频| www.99re7.com| 婷婷丁香花五月天| 日日橹狠狠爱欧美超碰| 国产极品模特精品一二| 黑人巨大狂躁日本妞在线观看| 一区二区三区在线视频看| www.26天天久久天堂| 免费视频网站www| 六九午夜精品视频| 最新在线你懂的| 国产不卡精品视频| 亚洲国产精品第一区二区| 青青青青国产视频| 一级片在线免费播放| 日韩欧美一级在线| 午夜肉伦伦影院| 亚洲av无码一区二区三区在线| 欧美亚洲国产一区| 午夜影院网站| jizz亚洲大全| 久久精品国产亚洲夜色av网站| 动漫视频在线一区| 亚洲va欧美va国产va天堂影院| 成网站在线观看人免费| 性xxxxxxxxx18欧美| 国产在线观看av| 国产精品久久久久久久岛一牛影视| 欧美三级日韩三级国产三级| 国内自拍在线观看| av电影在线播放高清免费观看| 亚洲国产欧美一区二区三区同亚洲| 91免费福利视频| 69堂视频在线观看国产| www.色综合.com| 四季av中文字幕| 另类中文字幕网| www.久久热.com| 国产精品一区二区免费福利视频| silk一区二区三区精品视频| 久久久影院免费| www男人天堂| 亚洲毛片一区二区三区| 污视频网址在线观看| 制服.丝袜.亚洲.另类.中文| 国产片高清在线观看| 欧美激情论坛| 国产精品久久久999| 久久国产精品色| 国产亚洲短视频| 91精品国产经典在线观看| 久久视频免费在线播放| 一区三区二区视频| 欧美xxxx少妇| 精品美女久久久久| 日批视频免费在线观看| 亚洲天堂成人在线| 特级黄国产片一级视频播放| 日b视频免费观看| 一区二区三区四区精品视频| 亚洲在线视频网站| 免费久久久久久久久| 国模私拍一区二区国模曼安| 欧美尿孔扩张虐视频| 亚洲国产精品久久久久蝴蝶传媒| 国产欧美一区二区三区久久人妖| 2023国产精品久久久精品双| 黑鬼狂亚洲人videos| 亚洲精品国产一区二区在线| 久久久久黄久久免费漫画| 久久久www成人免费精品张筱雨| 久久青青草原亚洲av无码麻豆|