2012-05-01 3 views
2

現在1.4.4を使用しているサイトでjQuery 1.7.2に移行する必要があります。私は1.4.4で正常に動作しますが、1.7.2にオブジェクトjQuery 1.4.4と1.7.2の間で.ajax()がコードブレークを起こす原因は何ですか?

[に戻って

テキストから何の変換を蹴っていない以下のAJAX呼び出しを持っています。

JSONはjsonlint.comに検証

、PHPスクリプトを呼び出すjson_encodeによって生成された(私はこれが.parseJSON()で行うことがより多くを持っていると思うが、私はわからない。)

function ajax_update(table_value, key_value, value_value, newkey_value, newvalue_value, debug) { 
$.ajax({ 
    type: "POST", 
    url: "/index.php/ajax/updatepost/", 
    data: { 
     table: table_value, 
     key: key_value, 
     value: value_value, 
     newkey: newkey_value, 
     newvalue: newvalue_value 
    }, 
    dataType: JSON, 
    success: function(data, textStatus){ 

     var result = jQuery.parseJSON(data); 

     //both debug and flash going in two different directions 
     $("div#flash > p").text(result.message); 
     $("div#flash").removeClass().addClass("message").addClass(result.flavor).slideDown(500).delay(1200).slideUp(500); 

     if (debug == true) { 
      $("div#debugflash > p").text(result.debug); 
      $("div#debugflash").removeClass().addClass("message").addClass("information").show(); 
     } 
    }, 
    error: function(errorObj, textStatus, errorThrown){ 

     $("div#flash > p").text(errorThrown); 
     $("div#flash").removeClass().addClass("message").addClass("error").slideDown(500).delay(1200).slideUp(500); 

     if (debug == true) { 
      $("div#debugflash > p").text(errorThrown); 
      $("div#debugflash").removeClass().addClass("message").addClass("information").show(); 
     } 
    } 
}); 

}(配列)と次のようになります。

{"message":"Updated field name with value ALAMO", 
"flavor":"success", 
"debug":"UPDATE `customers` SET `name` = 'ALAMO' WHERE `cust_id` = 'ALA100'" 

}

ヘッダ:

HTTP/1.1 200 OK 
Date: Tue, 01 May 2012 00:00:15 GMT 
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.8 with Suhosin-Patch 
X-Powered-By: PHP/5.3.8 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
MS-Author-Via: DAV 
Content-Length: 177 
Keep-Alive: timeout=15, max=96 
Connection: Keep-Alive 
Content-Type: application/json 

何か助けていただければ幸いです。

+0

このエラーはどこで起こりますか? –

+0

私はerrorThrownからerror anon関数に戻ります。 – kyletxag

+0

Ajaxは終了しますが、1.7.2のエラー関数を返します。 – kyletxag

答えて

3

は、私は、これは代わりに、jQueryの1.5

dataType: 'json' 
+0

今、成功関数に到達していますが、実際のメッセージを受け取りません。 – kyletxag

+0

アラート(データ)はオブジェクトオブジェクト – kyletxag

+0

を通知していますが、解析してそのデータに警告するとどうなりますか? – ingo

0

私はあなたのエラーは、この行を行う必要があるかもしれないと思う:

 var result = jQuery.parseJSON(data); 

は、あなたのデータ変数にデータが含まれていることを確認するために、前の行に

alert(data); 

を使用してみてください。

+0

私はそれがうまくいくために成功関数に到達することはありません。エラー関数がデータを返す場合、私はそれをどうやって取得するのか分かりません。 – kyletxag

+0

エラー(jqXHR、textStatus、errorThrown)機能 要求が失敗した場合に呼び出される関数。この関数は3つの引数を受け取ります。jqXHR(jQuery 1.4.x、XMLHttpRequest)オブジェクト... jqXHRオブジェクトはデータを返しますか?私は馬鹿で、知らない。 – kyletxag

+0

データは(も)あなたが挿入してくださいすることができ、あなたの誤差関数でjqXHR.responseText にする必要があります: 警告(errorObj.statusを)ちょうどトップ – Shane

関連する問題