このメソッドは、jQuery の基礎となる AJAX 実装です。シンプルで使いやすい高レベルの実装については、$.get、$.post などを参照してください。 $.ajax() は、作成した XMLHttpRequest オブジェクトを返します。ほとんどの場合、柔軟性を高めるためにあまり使用されないオプションを操作する必要がない限り、この関数を直接操作する必要はありません。
パラメータ |
|
設定 |
オプション。 Ajax リクエストの構成に使用されるキーと値のペアのコレクション。
参数 |
描述 |
settings |
可选。用于配置 Ajax 请求的键值对集合。
可以通过 $.ajaxSetup() 设置任何选项的默认值。
|
任意のオプションのデフォルト値は、$.ajaxSetup() を通じて設定できます。
|
テーブル>
jQuery.get()
使用一个HTTP GET 请求从服务器加载数据。
jQuery.get(url [,data] [,success(data,textStatus,jqXHR)] [dtaType])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
dataType 从服务器返回的预期数据。
用法:
$.get("test.cgi", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
jQuery.getJSON()
使用一个HTTP GET 请求服务器加载JSON 编码的数据。
jQuery.getJSON(url [,data] [,success(data,textStatus,jqXHR)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
jQuery.getScript()
使用一个HTTP GET请求从服务器加载并执行一个JavaScript文件。
jQuery.getScript(url[success(script,textStatus,jqXHR)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
用法:
$.getScript("ajax/test.js", function(data, textStatus, jqxhr) {
console.log(data); //data returned
console.log(textStatus); //success
console.log(jqxhr.status); //200
console.log('Load was performed.');
});
jQuery.post([settings])
使用一个HTTP POST请求从服务器加载数据。
jQuery.post(url[,data][,success(data,textStatus,jqXHR)][,dataType])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
success() 当请求成功时回调的函数
用法:
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
alert("Data Loaded: " + data);
});
.load()
从服务器载入数据并且将返回的HTML代码并插入至匹配的元素中。
.load(url[,data][,complete(responseText,textStatus,XMLHttpRequest)])
url 一个包含发送请求的URL
data 发送给服务器的字符串后键值对
complete 当请求成功时回调的函数
用法:
$('#result').load('ajax/test.html #container');
jQuery.ajax()
执行一个异步的HTTP(ajax)的请求。
参数:
url 类型: Sting 发送请求的地址(默认当前页面)
type 类型:Sting (默认为GET) 请求方式(”POST“或”GET“)
timeout 类型:Number 设置请求超时时间(毫秒),此设置默认覆盖全局。
async 类型:Boolean 默认设置(true)默认设置下所有请求均为一步请求,如果需要同步请求,设置为false。
beforeSend 类型:function 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。
cache 类型:Boolean 默认为(true) 设置为false 将不会从浏览器缓存中加载请求信息。
complete 类型:Function 请求完成后回调函数,(请求成功或失败时均调用)参数: XMLHttpRequest 对象,成功信息字符串。function ( XMLHttpRequest, textStatus) {this; // the options for this ajax request}
contentType 类型为:String 发送信息至服务器时内容编码类型,默认值适合大多数应用场合。
data 类型:Object String 发送到服务器的数据。将自动转换为请求字符串格式,GET请求附加在URL后
dataType 类型:String 预期服务器返回的数据类型, ”xml“返回XML文档。”html“返回纯文本信息,包含script 元素。”script“返回纯文本JavaScript 代码,不会自动缓存 结果。”json“返回JSON 数组。”jsonp“JSONP格式。
error 类型:function 请求失败时将调用此方法。
global 类型:Boolean 是否触发全局AJAX事件。默认为(true) 设置为false 将不会触发全局ajax 事件,可用于控制不同的AJAX事件。
ifModified 类型:Boolean 默认为false 仅在服务器数据改变时获取新数据。
processData 类型:Boolean 默认为(true)默认情况下,发送的数据发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form- urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
success 类型:Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态。
$(document).ready(function() {
jQuery("#clearCac").click(function() {
jQuery.ajax({
url: "/Handle/Do.aspx",
type: "post",
data: { id: '0' },
dataType: "json",
success: function(msg) {
alert(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
complete: function(XMLHttpRequest, textStatus) {
this; // 调用本次AJAX请求时传递的options参数
}
});
});
});
エラー イベントによって返される最初のパラメーター XMLHttpRequest には、いくつかの有用な情報が含まれています:
XMLHttpRequest.readyState:
ステータスコード
0 - (初期化されていない) send() メソッドはまだ呼び出されていません
1 - (読み込み中) send() メソッドが呼び出され、リクエストが送信されています
2 - (ロード完了) send() メソッドが実行され、すべての応答コンテンツが受信されました
3 - (対話型) 応答コンテンツの解析
4 - (完了) 応答コンテンツの解析が完了し、クライアントで呼び出すことができます
XMLHttpRequest.status:
1xx-情報プロンプト
これらのステータス コードは暫定応答を示します。クライアントは、通常の応答を受信する前に、1 つ以上の 1xx 応答を受信できるように準備する必要があります。
100-継続。
101-スイッチプロトコル。
2xx-成功
このタイプのステータス コードは、サーバーがクライアント要求を正常に受け入れたことを示します。
200-OK。クライアントのリクエストは成功しました。
201-作成。
202-承認されました。
203 - 権威のない情報。
204 - コンテンツがありません。
205-コンテンツをリセットします。
206-コンテンツの一部。
3xx-リダイレクト
クライアント ブラウザは、リクエストを満たすために追加のアクションを実行する必要があります。たとえば、ブラウザはサーバー上の別のページをリクエストしたり、プロキシ サーバー経由でリクエストを繰り返したりする必要がある場合があります。
301 - オブジェクトは永続的に移動されました。つまり、永続的にリダイレクトされました。
302 - オブジェクトは一時的に移動されました。
304 - 変更されていません。
307 - 一時的なリダイレクト。
4xx-クライアント エラー
エラーが発生しました。クライアントに問題があるようです。たとえば、クライアントが存在しないページを要求し、クライアントが有効な認証情報を提供しなかったとします。 400 - 不正なリクエスト。
401 - アクセスが拒否されました。 IIS では、より具体的なエラー原因を示すさまざまな 401 エラーが定義されています。これらの特定のエラー コードはブラウザーには表示されますが、IIS ログには表示されません:
401.1 - ログインに失敗しました。
401.2 - サーバー構成によりログインが失敗しました。
401.3 - リソースに対する ACL 制限により許可されません。
401.4 - フィルターの承認に失敗しました。
401.5-ISAPI/CGI アプリケーションの認証に失敗しました。
401.7 – アクセスは、Web サーバー上の URL 認証ポリシーによって拒否されます。このエラー コードは IIS6.0 に固有です。
403 - 禁止: IIS では、エラーのより具体的な原因を示すさまざまな 403 エラーが定義されています。
403.1 - 実行アクセスは禁止されています。
403.2 - 読み取りアクセスは禁止されています。
403.3 - 書き込みアクセスは禁止されています。
403.4 - SSL が必要です。
403.5 - SSL128 が必要です。
403.6 - IP アドレスが拒否されました。
403.7 - クライアント証明書が必要です。
403.8 - サイトへのアクセスが拒否されました。
403.9 - ユーザーが多すぎます。
403.10 - 構成が無効です。
403.11 - パスワードの変更。
403.12 - マッピング テーブルへのアクセスが拒否されました。
403.13 - クライアント証明書が取り消されました。
403.14 - ディレクトリのリストが拒否されました。
403.15 - クライアントのアクセス許可を超えました。
403.16 - クライアント証明書が信頼されていないか、無効です。
403.17 - クライアント証明書の有効期限が切れているか、まだ有効ではありません。
403.18 - 要求された URL は現在のアプリケーション プールでは実行できません。このエラー コードは IIS6.0 に固有です。
403.19 - このアプリケーション プール内のクライアントに対して CGI を実行できません。このエラー コードは IIS6.0 に固有です。
403.20 - パスポートのログインに失敗しました。このエラー コードは IIS6.0 に固有です。
404-見つかりません。
404.0-(なし) – ファイルまたはディレクトリが見つかりません。
404.1 - 要求されたポートでは Web サイトにアクセスできません。
404.2 - このリクエストは、Web サービス拡張ロック ポリシーによってブロックされます。
404.3-MIME マッピング ポリシーは、この要求をブロックします。
405 - このページへのアクセスに使用される HTTP 動詞は許可されていません (メソッドが許可されていません)
406 - クライアントのブラウザは、要求されたページの MIME タイプを受け入れません。
407 - プロキシ認証が必要です。
412 - 前提条件が失敗しました。
413 – リクエストエンティティが大きすぎます。
414 - リクエスト URI が長すぎます。
415 – サポートされていないメディア タイプ。
416 – 要求された範囲を満たすことができません。
417 – 実行に失敗しました。
423 – ロックされたエラー。
5xx-サーバーエラー
サーバーはエラーが発生したため、リクエストを完了できませんでした。
500 - 内部サーバーエラー。
500.12 - アプリケーションは Web サーバー上で再起動中です。
500.13 - Web サーバーがビジー状態です。
500.15 - Global.asa への直接リクエストは許可されません。
500.16 – UNC 認証資格情報が正しくありません。このエラー コードは IIS6.0 に固有です。
500.18 – URL 認証ストアを開けません。このエラー コードは IIS6.0 に固有です。
500.100 - 内部 ASP エラー。
501 - ヘッダー値は未実装の構成を指定します。
502 - Web サーバーがゲートウェイまたはプロキシ サーバーとして機能しているときに、無効な応答を受信しました。
502.1-CGI アプリケーションがタイムアウトしました。
502.2-CGI アプリケーション エラー。アプリケーション
503 - サービスが利用できません。このエラー コードは IIS6.0 に固有です。
504 - ゲートウェイのタイムアウト。
505 - HTTP バージョンはサポートされていません。
jQuery.param()
URL クエリ文字列または Ajax リクエストで使用する配列、プレーン オブジェクト、または jQuery オブジェクトのシリアル化表現を作成します。
jQuery.param(obj)
obj シリアル化用の配列、通常のオブジェクト、または jQuery オブジェクト。
jQuery.param( obj, traditional )
obj シリアル化用の配列、通常のオブジェクト、または jQuery オブジェクト。
伝統的な
従来の「浅い」シリアル化が実行されるかどうかを示すブール値。
$.param({ a: [2,3,4] }) // "a[]=2&a[]=3&a[]=4"
$.param({ a: { b:1,c:2 }, d: [3,4,{ e:5 }] }) // "a[b]=1&a[c]=2&d[]=3&d []=4&d[2][e]=5"