今回は、$.ajax() の使用法について詳しく説明し、$.ajax() を使用する際の 注意事項 について説明します。以下は実際的なケースです。見てみましょう。
AJAXとはサーバーとデータをやり取りし、Webページ全体を補完しながらWebページの一部を更新できる技術です。次に、この記事では、ajax の一般的なメソッドをいくつか紹介します。必要に応じて一緒に学習できます。
1.url:
は、リクエストの送信先となる文字列型パラメータである必要があります(デフォルトは現在のページアドレスです)。
2.type:
には String 型のパラメータが必要で、リクエスト メソッド (post または get) のデフォルトは get です。 put や delete などの他の http リクエスト メソッド も使用できますが、一部のブラウザーでのみサポートされていることに注意してください。
3.timeout:
には Number 型のパラメータが必要で、リクエストのタイムアウト (ミリ秒) を設定します。この設定は、$.ajaxSetup() メソッドのグローバル設定をオーバーライドします。
4.async:
にはブール型のパラメータが必要です。デフォルト設定はすべて非同期リクエストです。同期リクエストを送信する必要がある場合は、このオプションを false に設定します。同期リクエストはブラウザをロックするため、ユーザーはリクエストが完了するまで他の操作を実行する必要があることに注意してください。5.cache:
にはブール型パラメータが必要です。デフォルトはtrueです(dataTypeがscriptの場合、デフォルトはfalse)。これをfalseに設定すると、ブラウザのキャッシュからリクエスト情報がロードされません 。
6.data:
には、サーバーに送信されるデータであるオブジェクト型または文字列型のパラメータが必要です。文字列でない場合は、自動的に文字列形式に変換されます。取得リクエストは URL に追加されます。この自動変換を防ぐには、processData オプションを表示します。オブジェクトはキー/値形式である必要があります。たとえば、{foo1:"bar1",foo2:"bar2"} は &foo1=bar1&foo2=bar2 に変換されます。配列の場合、JQuery は異なる値に同じ名前を自動的に割り当てます。たとえば、{foo:["bar1","bar2"]} は &foo=bar1&foo=bar2 に変換されます。7.dataType:
には文字列型のパラメータが必要で、データ型がサーバーによって返されることが期待されます。指定しない場合、JQuery は http パッケージの MIME 情報に基づいて、自動的に responseXML または responseText を返し、それをコールバック関数 パラメーターとして渡します。利用可能な型は次のとおりです:
xml: JQuery で処理できる XML ドキュメントを返します。 html: プレーンテキストの HTML 情報を返します。含まれている script タグは、DOM に挿入されると実行されます。 script: プレーンテキストの JavaScript コードを返します。結果は自動的にキャッシュされません。キャッシュパラメータが設定されていない限り。 (同じドメインの下ではなく) リモート要求を行う場合、すべての post 要求が get 要求に変換されることに注意してください。 json: JSON データを返します。 jsonp: JSONP形式。 myurl?callback=? などの SONP フォームを使用して関数を呼び出すと、JQuery は最後の「?」を正しい関数名に自動的に置き換えてコールバック関数を実行します。 text: プレーンテキスト文字列を返します。8.beforeSend:
には Function タイプのパラメータが必要です。カスタム HTTP ヘッダーの追加など、リクエストを送信する前に XMLHttpRequest オブジェクトの関数を変更できます。 beforeSend で false が返された場合、この ajax リクエストはキャンセルできます。 XMLHttpRequest オブジェクトが唯一のパラメータです。function(XMLHttpRequest){ this; //调用本次ajax请求时传递的options参数 }
9.complete:
には、リクエストの完了後に呼び出される (リクエストが成功または失敗したときに呼び出される) コールバック関数である Function タイプのパラメータが必要です。パラメータ: XMLHttpRequest オブジェクトと、成功したリクエストの種類を説明する文字列。function(XMLHttpRequest, textStatus){ this; //调用本次ajax请求时传递的options参数 }
10.success:
リクエストが成功した後に呼び出されるコールバック関数には、Function タイプのパラメータが必要です。 (1) サーバーから返され、dataType パラメーターに従って処理されたデータ。(2)描述状态的字符串。
function(data, textStatus){ //data可能是xmlDoc、jsonObj、html、text等等 this; //调用本次ajax请求时传递的options参数 }
11.error:
要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown){ //通常情况下textStatus和errorThrown只有其中一个包含信息 this; //调用本次ajax请求时传递的options参数 }
12.contentType:
要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。
13.dataFilter:
要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){ //返回处理后的数据 return data; }
14.dataFilter:
要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。
function(data, type){ //返回处理后的数据 return data; }
15.global:
要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。
16.ifModified:
要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。
17.jsonp:
要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
18.username:
要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
19.password:
要求为String类型的参数,用于响应HTTP访问认证请求的密码。
20.processData:
要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。
21.scriptCharset:
要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。
案例代码:
$(function(){ $('#send').click(function(){ $.ajax({ type: "GET", url: "test.json", data: {username:$("#username").val(), content:$("#content").val()}, dataType: "json", success: function(data){ $('#resText').empty(); //清空resText里面的所有内容 var html = ''; $.each(data, function(commentIndex, comment){ html += '<p class="comment"><h6>' + comment['username'] + ':</h6><p class="para"' + comment['content'] + '</p></p>'; }); $('#resText').html(html); } }); }); });
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上が$.ajax() の使い方の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。