国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

json跨域調用python的方法詳解

2019-11-25 16:25:03
字體:
來源:轉載
供稿:網友

本文實例講述了json跨域調用python的方法。分享給大家供大家參考,具體如下:

客戶端:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  <title>jQuery-跨域請求</title>  <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>  <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>  </head>   <script type="text/javascript">  jQuery(document).ready(function(){    $.ajax({      type : "GET",      url : "http://10.13.38.43:1234/?id=10&callback=?",      dataType : "jsonp",      jsonp: 'callback',      success : function(json){          alert(json.account);        //$('#msg_box').html(json);        //return true;      }    });  });  </script>   <body>  <div id="msg_box"></div>  </body>  </html>

服務端

import weburls=('/','Index',)class Index:    def GET(self):      inputdata=web.input()      mycallbackfun=inputdata.callback      #return 'hello' +inputdata.id      return mycallbackfun+'({"account":"XX","passed":"true","error":"null"})'app = web.application(urls, globals())if __name__=='__main__':    app.run()

附:jquery跨域請求方法簡介

這里介紹jQuery跨域請求方法,并提供簡單的示例代碼供參考。

項目中關于ajax jsonp的使用,出現了問題:可以成功獲得請求結果,但沒有執行success方法,總算搞定了,記錄一下。

function TestAjax(){  $.ajax({    type : "get",    async : false,    url : "ajaxHandler.ashx", //實際上訪問時產生的地址為: ajax.ashx?callbackfun=jsonpCallback&id=10    data : {id : 10},    cache : false, //默認值true    dataType : "jsonp",    jsonp: "callbackfun",//傳遞給請求處理程序或頁面的,用以獲得jsonp回調函數名的參數名(默認為:callback)    jsonpCallback:"jsonpCallback",      //自定義的jsonp回調函數名稱,默認為jQuery自動生成的隨機函數名      //如果這里自定了jsonp的回調函數,則success函數則不起作用;否則success將起作用    success : function(json){      alert(json.message);    },    error:function(){      alert("erroe");    }  });}function jsonpCallback(data) //回調函數{  alert(data.message); //}public class ajaxHandler : IHttpHandler{  public void ProcessRequest (HttpContext context) {    context.Response.ContentType = "text/plain";    string callbackfun = context.Request["callbackfun"];    context.Response.Write(callbackfun + "({name:/"John/", message:/"hello John/"})");    context.Response.End();  }  public bool IsReusable {get {return false;}}

ajax請求參數說明:

dataType string 服務器返回的數據類型。
如果不指定,jQuery 將自動根據 HTTP 包 MIME 信息來智能判斷,比如XML MIME類型就被識別為XML。

可用值:

"xml": 返回 XML 文檔,可用 jQuery 處理。
"html": 返回純文本 HTML 信息;包含的script標簽會在插入dom時執行。
"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了"cache"參數。

注意:在遠程請求時(不在同一個域下),所有POST請求都將轉為GET請求。(因為將使用DOM的script標簽來加載)

"json": 返回 JSON 數據 。
"text": 返回純文本字符串
"jsonp":jsonp格式。使用jsonp形式調用函數時,訪問url時會自動將url后面添加上如"callback=callbackFunName" 以執行回調函數(callbackFunName)。

jsonp string

在一個jsonp請求中重寫回調函數的名字。這個值用來替代在"callback=?"這種get或post請求中url參數里的"callback"部分,比如 jsonp:'callbackfun' 則將會生成"callbackfun=?"傳給服務器。

jsonpCallback String 此參數為jsonp請求指定一個回調函數名。

這個值將用來取代jQuery自動生成的隨機函數名。 即上面"callback=?"中的問號部分。

這主要用來讓jQuery生成度獨特的函數名,這樣請求更容易,也能方便地提供回調函數和錯誤處理。

也可以在想讓瀏覽器緩存GET請求的時候,指定這個回調函數名。

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

jsonpCallback({ name:"world",message:"hello world"});

實際上就是調用jsonp回調函數jsonpCallback,并將要響應的字符串或json傳入此方法,關于自定了jsonp的回調函數, success函數則不起作用,大概其底層的實現(當然這是默認的回調函數的時候,否則就不會執行success的方法吧):

function default_jsonpCallback(data){  success(data); //在默認的回調方法中執行}

PS:關于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.VeVB.COm/code/json

JSON在線格式化工具:
http://tools.VeVB.COm/code/jsonformat

在線XML/JSON互相轉換工具:
http://tools.VeVB.COm/code/xmljson

json代碼在線格式化/美化/壓縮/編輯/轉換工具:
http://tools.VeVB.COm/code/jsoncodeformat

在線json壓縮/轉義工具:
http://tools.VeVB.COm/code/json_yasuo_trans

C語言風格/HTML/CSS/json代碼格式化美化工具:
http://tools.VeVB.COm/code/ccode_html_css_json

更多Python相關內容感興趣的讀者可查看本站專題:《Python操作json技巧總結》、《Python編碼操作技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高雄市| 玉环县| 乐业县| 汝州市| 容城县| 墨玉县| 蒲城县| 卓尼县| 寻乌县| 秦安县| 安国市| 博野县| 彭阳县| 新闻| 华池县| 永登县| 望奎县| 丹阳市| 保亭| 雷州市| 永和县| 沁源县| 邻水| 红原县| 霸州市| 江门市| 赤城县| 永春县| 南投县| 兴海县| 历史| 法库县| 冷水江市| 日土县| 聂拉木县| 泰州市| 常山县| 都昌县| 肇庆市| 临猗县| 舞钢市|