이 문서의 예에서는 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 web urls=('/','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 사용에 문제가 있었습니다. 요청 결과는 성공적으로 얻었으나 성공 메소드가 실행되지 않았습니다. 결국 해결되었습니다.
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 문자열 서버가 반환한 데이터 유형입니다.
지정하지 않으면 jQuery는 HTTP 패킷 MIME 정보를 기반으로 자동으로 지능적인 판단을 내립니다. 예를 들어 XML MIME 유형은 XML로 인식됩니다.
사용 가능한 값:
"xml": jQuery로 처리할 수 있는 XML 문서를 반환합니다.
"html": 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.
"script": 일반 텍스트 JavaScript 코드를 반환합니다. 결과는 자동으로 캐시되지 않습니다. "cache" 매개변수가 설정되지 않은 경우.
참고: 원격 요청(동일한 도메인이 아님)을 수행하는 경우 모든 POST 요청은 GET 요청으로 변환됩니다. (DOM 스크립트 태그를 사용하여 로드하기 때문입니다.)
"json": JSON 데이터를 반환합니다.
"text": 일반 텍스트 문자열
"jsonp":jsonp 형식을 반환합니다. jsonp 형식으로 함수 호출 시 해당 url에 접근하면 url 끝에 "callback=callbackFunName"이 자동으로 추가되어 콜백 함수(callbackFunName)를 실행하게 된다.
jsonp 문자열
jsonp 요청에서 콜백 함수 이름을 다시 작성합니다. 이 값은 "callback=?"과 같은 get 또는 post 요청에서 url 매개변수의 "callback" 부분을 대체하는 데 사용됩니다. 예를 들어 jsonp:'callbackfun'은 "callbackfun=?"을 생성하여 서버에 전달합니다. .
jsonpCallback 문자열 이 매개변수는 jsonp 요청에 대한 콜백 함수 이름을 지정합니다.
이 값은 jQuery에서 자동으로 생성된 임의의 함수 이름을 대체하는 데 사용됩니다. 위의 "callback=?"에 있는 물음표 부분입니다.
주로 jQuery에서 고유한 함수 이름을 생성하여 요청을 더 쉽게 하고 콜백 함수 및 오류 처리를 편리하게 제공할 수 있도록 하는 데 사용됩니다.
브라우저가 GET 요청을 캐시하도록 하려는 경우 이 콜백 함수 이름을 지정할 수도 있습니다.
ajax jsonp와 일반 ajax 요청의 주요 차이점은 요청 응답 결과를 처리하는 것입니다. 위 코드에서 볼 수 있듯이 응답 결과는 다음과 같습니다.
jsonpCallback({ name:"world",message:"hello world"});
실제로 jsonp 콜백 함수인 jsonpCallback이 호출되고, 응답할 문자열이나 json이 이 메서드에 전달됩니다. 함수, 성공 함수 작동하지 않을 것입니다. 아마도 기본 구현일 것입니다(물론 이것은 기본 콜백 함수입니다. 그렇지 않으면 성공 메서드가 실행되지 않습니다):
function default_jsonpCallback(data) { success(data); //在默认的回调方法中执行 }
이 문서가 Python을 사용하는 모든 사람에게 도움이 되기를 바랍니다. 프로그래밍 도움.
json을 사용하여 도메인 간 Python을 호출하는 방법에 대한 자세한 설명은 PHP 중국어 웹사이트의 관련 기사를 참고하세요!