真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

跨域請求之jQuery的ajaxjsonp的使用解惑

     前天在項目中寫的一個ajax jsonp的使用,出現(xiàn)了問題:可以成功獲得請求結果,但沒有執(zhí)行success方法,直接執(zhí)行了error方法提示錯誤——ajax jsonp之前并沒有用過,對其的理解為跟普通的ajax請求差不多,沒有深入了解;出現(xiàn)了這種錯誤,幾經(jīng)調試(檢查后臺的代碼和js部分的屬性設置)還是不行,讓我感覺很是意外和不解。于是,決定仔細研究下ajax jsonp的使用,并將最后測試成功的學習經(jīng)驗和大家分享下!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網(wǎng)絡空間、營銷軟件、網(wǎng)站建設、朝天網(wǎng)站維護、網(wǎng)站推廣。

首先,貼出可以成功執(zhí)行的代碼:

      (頁面部分)

 1 
2
3
4 Untitled Page
5
6
27
28
29
30


(處理程序部分)

 1 <%@ WebHandler Language="C#" Class="ajax" %>
2
3 using System;
4 using System.Web;
5
6 public class ajax : IHttpHandler {
7
8 public void Proce***equest (HttpContext context) {
9 context.Response.ContentType = "text/plain";
10 string callbackFunName = context.Request["callbackparam"];
11 context.Response.Write(callbackFunName + "([ { name:\"John\"} ] )");
12 }
13
14 public bool IsReusable {
15 get {
16 return false;
17 }
18 }
19
20 }

  (請求抓包截圖)

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

ajax請求參數(shù)說明:

dataType String

預期服務器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息來智能判斷,比如XML MIME類型就被識別為XML。在1.4中,JSON就會生成一個JavaScript對象,而script則會執(zhí)行這個腳本。隨后服務器端返回的數(shù)據(jù)會根據(jù)這個值解析后,傳遞給回調函數(shù)??捎弥?

"xml": 返回 XML 文檔,可用 jQuery 處理。

"html": 返回純文本 HTML 信息;包含的script標簽會在插入dom時執(zhí)行。

"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了"cache"參數(shù)。'''注意:'''在遠程請求時(不在同一個域下),所有POST請求都將轉為GET請求。(因為將使用DOM的script標簽來加載)

"json": 返回 JSON 數(shù)據(jù) 。

"jsonp": JSONP 格式。使用 JSONP 形式調用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調函數(shù)。

"text": 返回純文本字符串

jsonp  String

在一個jsonp請求中重寫回調函數(shù)的名字。這個值用來替代在"callback=?"這種GET或POST請求中URL參數(shù)里的"callback"部分,比如{jsonp:'onJsonPLoad'}會導致將"onJsonPLoad=?"傳給服務器。

jsonpCallback  String

為jsonp請求指定一個回調函數(shù)名。這個值將用來取代jQuery自動生成的隨機函數(shù)名。這主要用來讓jQuery生成度獨特的函數(shù)名,這樣管理請求更容易,也能方便地提供回調函數(shù)和錯誤處理。你也可以在想讓瀏覽器緩存GET請求的時候,指定這個回調函數(shù)名。

ajax jsonp與普通的ajax請求的主要區(qū)別在于——請求響應結果的處理。如上面代碼所示的響應結果為:

success_jsonpCallback([ { name:"John"} ] ); ————其實就是,調用jsonp回調函數(shù)success_jsonpCallback,并將要響應的字符串或json傳入此方法(作為參數(shù)值),其底層的實現(xiàn),大概的猜想應該是:
 function success_jsonpCallback(data)
        {
            success(data);
        }
 經(jīng)測試,ajax jsonp對同步或異步請求沒有影響。
 好了,如有解釋不對或不完整的地方,希望大家見諒,歡迎留言、扔板磚!

網(wǎng)站標題:跨域請求之jQuery的ajaxjsonp的使用解惑
文章轉載:http://weahome.cn/article/gdjegd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部