ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery での $.ajax() メソッドのパラメーター分析

jQuery での $.ajax() メソッドのパラメーター分析

高洛峰
高洛峰オリジナル
2016-12-09 13:17:171187ブラウズ

この記事の例では、参考のために jQuery $.ajax() メソッドのパラメーターを説明します。具体的な内容は次のとおりです

$.ajax({
  url:'test.do',
  data:{id:123,name:'xiaoming'},
  type:'post',
  dataType:'json',
  success:function(data){
   alert(data);//弹窗
   //TODO ........
  
  },
  
  error:function(data){
    alert(data);//弹窗
    //TODO ........
  }
 
 })

url: パラメーターは String 型である必要があります (デフォルトは現在の値です)。ページアドレス) リクエストを送信するアドレス。
type: パラメーターは String 型である必要があり、リクエスト メソッド (post または get) はデフォルトで get になります。 put や delete などの他の http リクエスト メソッドも使用できますが、一部のブラウザでのみサポートされていることに注意してください。

timeout: 要件はタイプ Number のパラメーターで、リクエストのタイムアウト (ミリ秒) を設定します。この設定は、$.ajaxSetup() メソッドのグローバル設定をオーバーライドします。

async: 要件はブール型パラメーターです。デフォルト設定はすべてのリクエストです。 同期リクエストを送信する必要がある場合は、このオプションを false に設定します。同期リクエストはブラウザをロックするため、ユーザーはリクエストが完了するまで他の操作を実行する必要があることに注意してください。

cache: パラメータはブール型である必要があり、デフォルトは true (dataType が script の場合、デフォルトは false) です。 false に設定すると、ブラウザーのキャッシュからリクエスト情報がロードされません。

data: オブジェクトまたは文字列タイプのパラメータ、サーバーに送信されるデータが必要です。文字列でない場合は、自動的に文字列形式に変換されます。取得リクエストは URL に追加されます。この自動変換を防ぐには、processData オプションをチェックします。オブジェクトはキー/値形式である必要があります。たとえば、{foo1:"bar1",foo2:"bar2"} は &foo1=bar1&foo2=bar2 に変換されます。配列の場合、JQuery は異なる値に同じ名前を自動的に割り当てます。たとえば、{foo:["bar1","bar2"]} は &foo=bar1&foo=bar2 に変換されます。

dataType: パラメーターは文字列型である必要があり、サーバーによって返されることが予期されるデータ型です。指定しない場合、JQuery は http パッケージの MIME 情報に基づいて、responseXML または responseText を自動的に返し、それをコールバック関数のパラメーターとして渡します。

利用可能なタイプは次のとおりです:

xml: JQuery で処理できる XML ドキュメントを返します。戻り値 HTML: 純粋なテキストの HTML 情報に戻ります。DOM の挿入時に、含まれている Script タグが実行されます。
script: プレーンテキストの JavaScript コードを返します。結果は自動的にキャッシュされません。キャッシュパラメータが設定されていない限り。 (同じドメインの下ではなく) リモート要求を行う場合、すべての post 要求が get 要求に変換されることに注意してください。
json: JSON データを返します。
jsonp: JSONP 形式。 myurl?callback=? などの SONP フォームを使用して関数を呼び出すと、JQuery は最後の「?」を正しい関数名に自動的に置き換えてコールバック関数を実行します。

text: プレーンテキスト文字列を返します。

beforeSend: パラメーターは Function タイプである必要があります。カスタム HTTP ヘッダーの追加など、リクエストを送信する前に XMLHttpRequest オブジェクトの関数を変更できます。 beforeSend で false が返された場合、この ajax リクエストはキャンセルできます。 XMLHttpRequest オブジェクトが唯一のパラメータです。関数 (xmlhttprequest) で {

this; // Ajax リクエスト中に渡された OPTIONS パラメータを呼び出します
}


Complete: Function タイプによってリクエストされたパラメータ)。

パラメーター: XMLHttpRequest オブジェクトと、成功したリクエストの種類を説明する文字列。

関数(xmlhttprequest、textStatus){

success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
         (1)由服务器返回,并根据dataType参数进行处理后的数据。
         (2)描述状态的字符串。
         function(data, textStatus){
            //data可能是xmlDoc、jsonObj、html、text等等
            this;  //调用本次ajax请求时传递的options参数
        error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错 误信息、捕获的错误对象(可选)。

ajax事件函数如下:     

function(XMLHttpRequest, textStatus, errorThrown){
  //通常情况下textStatus和errorThrown只有其中一个包含信息
  this; //调用本次ajax请求时传递的options参数
 }

   

contentType:要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。              
dataFilter:要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。
            提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。          

function(data, type){
   //返回处理后的数据
   return data;
  }

   

global:要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。         

ifModified:要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。             

jsonp:要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如 {jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。       

username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。             

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 += '
 
  
  
 
  ' + comment['username']
           + ':

   


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。