元のjsはajax非同期要求を実現する
2712 ワード
function createXMLHttpRequest() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
// IE6
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
// IE5
try {
xmlHttp = ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
return xmlHttp;
}
xmlHttpの互換性のある書き方を返します
var xmlhttp = createXMLHttpRequest();
xmlhttp.onreadystatechange = function () { // ajax
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var data = xmlhttp.responseText;
alert(data);
}
}
xmlhttp.open("POST", "/ajax_recelve/", true);//GET|POST url
//POST : django form , 403, warn
xmlhttp.setRequestHeader("ContentType", "application/x-www-form-urlencoded")// open ,send
// xmlhttp.send(null);
xmlhttp.send("name=daxue");
ルーティングurl
url(r'ajax_recelve/',views.ajax_recelve),
関数の実装
def ajax_recelve(request):
if request.method == "POST":
print("12345",request.POST)
return HttpResponse(" ajax hello2 ")
1.open(method,url,async)メソッドには、3つのパラメータが必要です.
method:要求を送信するために使用される方法(GETまたはPOST);POSTに比べてGETは簡単で速く、ほとんどの場合使用できます.ただし、以下の場合、POSTリクエストを使用してください.
url:サーバ側スクリプトのURLを規定します(このファイルは、.txtおよび.xmlなどの任意のタイプのファイル、または.aspおよび.phpなどのサーバスクリプトファイル(応答を返す前にサーバ上でタスクを実行できます);
async:要求に対して非同期(true)または同期(false)処理を行うべきであることを規定する.trueは、サーバの応答を待つ間に他のスクリプトを実行し、応答が完了した後に応答を処理する.falseは、サーバ応答の再実行を待つ.
2.send()メソッドは、要求をサーバに送信することができる.
3.onreadystatechange:サーバ応答を処理する関数が保存され、readystatechange関数はreadystatechangeが変更されるたびに実行されます.
4.readyState:サーバ応答のステータス情報が格納されています.
open
メソッドが呼び出された)send
メソッドが呼び出され、ヘッダおよびステータスが取得可能)responseText
属性は既に部分データを含む)5.responseText:文字列形式の応答データを取得する.
6.setRequestHeader():POSTでデータを転送する場合、HTTPヘッダを追加し、send(data)し、dataフォーマットに注意する.GETがメッセージを送信するときにurlに直接パラメータを付けるといいです.例えばurl?a=a1&b=b1