jsonのクロスドメイン呼出しpythonコードの例
5793 ワード
クライアント:
jqueryドメイン横断要求方法の概要
2012-12-25 21:01
来源:ブログ園
作者:ベンwu
店名:T 124
[要約]ここでは、jqueryドメイン間要求方法を紹介し、参照のために簡単なコード例を提供する。
プロジェクトの中でajax jsonpの使用について問題がありました。要求結果を得ることができますが、successの方法を実行していません。やっとできました。記録してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
dataType stringサーバから返ってくるデータの種類。
指定されていない場合、jQueryは自動的にHTTPパッケージMIME情報に基づいて知能的に判断します。たとえばXML MIMEタイプはXMLと識別されます。
利用可能な値:
「xml」:XMLドキュメントに戻り、jQueryで処理できます。
「html」:テキストのみのHTML情報を返す。含まれるスクリプトタグはdomを挿入するときに実行されます。
「スクリプト」:純粋なテキストJavaScriptコードを返します。結果は自動キャッシュされません。「cache」パラメータが設定されていない限り。
注意:リモート要求時(同じドメインではなく)、すべてのPOST要求はGET要求に変わります。(DOMのscriptタグを使ってロードするので)
「JSON」:JSONデータを返します。
「text」:テキストの文字列を返します。
「json」:jsop形式です。Jsonp形式で関数を呼び出すと、urlを訪問する際に自動的にurlの後ろに「calback=calbackFunName」といったようにコールバック関数を追加します。
json string
jsonp要求では、コールバック関数の名前を書き換えます。この値は、「calback=?」というgetまたはpost要求の中でurlパラメータの「calback」の部分に代わります。例えば、jsop:'calbackfun'は、「calbackfun=?」を生成してサーバに伝えます。
jsonpCallback Stringこのパラメータはjsonp要求のためのコールバック関数名を指定します。
この値はjQueryが自動的に生成する確率関数名に代わるものです。上の「calback=?」の疑問符部分です。
これは主にjQueryに度数独特の関数名を生成させるために使われています。このような要求はより簡単であり、また、コールバック関数とエラー処理を簡単に提供することができます。
ブラウザにGET要求をキャッシュしたい場合、このコールバック関数名を指定しても良いです。
ajax jsonpと普通のajax要求の主な違いは、応答結果を要求する処理である。上記のコードのような応答結果は以下の通りです。
1
1
2
3
4
<!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ドメイン横断要求方法の概要
2012-12-25 21:01
来源:ブログ園
作者:ベンwu
店名:T 124
[要約]ここでは、jqueryドメイン間要求方法を紹介し、参照のために簡単なコード例を提供する。
プロジェクトの中でajax jsonpの使用について問題がありました。要求結果を得ることができますが、successの方法を実行していません。やっとできました。記録してください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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情報を返す。含まれるスクリプトタグはdomを挿入するときに実行されます。
「スクリプト」:純粋なテキストJavaScriptコードを返します。結果は自動キャッシュされません。「cache」パラメータが設定されていない限り。
注意:リモート要求時(同じドメインではなく)、すべてのPOST要求はGET要求に変わります。(DOMのscriptタグを使ってロードするので)
「JSON」:JSONデータを返します。
「text」:テキストの文字列を返します。
「json」:jsop形式です。Jsonp形式で関数を呼び出すと、urlを訪問する際に自動的にurlの後ろに「calback=calbackFunName」といったようにコールバック関数を追加します。
json string
jsonp要求では、コールバック関数の名前を書き換えます。この値は、「calback=?」というgetまたはpost要求の中でurlパラメータの「calback」の部分に代わります。例えば、jsop:'calbackfun'は、「calbackfun=?」を生成してサーバに伝えます。
jsonpCallback Stringこのパラメータはjsonp要求のためのコールバック関数名を指定します。
この値はjQueryが自動的に生成する確率関数名に代わるものです。上の「calback=?」の疑問符部分です。
これは主にjQueryに度数独特の関数名を生成させるために使われています。このような要求はより簡単であり、また、コールバック関数とエラー処理を簡単に提供することができます。
ブラウザにGET要求をキャッシュしたい場合、このコールバック関数名を指定しても良いです。
ajax jsonpと普通のajax要求の主な違いは、応答結果を要求する処理である。上記のコードのような応答結果は以下の通りです。
1
jsonpCallback({ name:
"world"
,message:
"hello world"
});
実際にはjsonpコールバック関数jsonpCallbackを呼び出して、応答する文字列やjsonをこの方法に導入します。jsonのコールバック関数を指定しましたが、success関数は機能しません。その底の実現を大まかに説明します。1
2
3
4
function
default_jsonpCallback(data)
{
success(data);
//
}