jQuery POSTが提出したデータから返されたデータはJSON対象として解析できない

2260 ワード

jQuery POSTが提出したデータから返されたデータはJSON対象として解析できない
質問:
jQuery POSTを使用してPHPファイルにデータをコミットし、PHPが返すjson_encode以降の配列データですが、jQueryが受信したデータはJSONオブジェクトではなく文字列{"code":-1,"msg":"123","data":[]}として解析できません
分析:
jQuery get()およびpost()メソッドは、HTTP GETまたはPOSTを介してサーバからデータを要求するために使用される.jQuery $.get()メソッド
$.get()メソッドは、HTTP GETを介してサーバからデータを要求する.構文:$.get(URL,callback);詳細構文:
$(selector).get(url, data, success(response,status,xhr), dataType)
jQuery $.post()メソッド
. p o s t()メソッドは、サーバからデータの要求をH T T P‘P O S T’により要求する.文法:.post()メソッドは、HTTP`POST`によりサーバからのデータ要求を行う.文法:.post()メソッドは、HTTP‘POST’によりサーバからデータを要求する.文法:.post(URL,data,callback); 詳細構文:
 jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)

$を表示します.post()の詳細な構文:
jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)

最後にパラメータdataTypeがありますが、これが問題です.このdataTypeは、所望のサーバ応答のデータ型を規定するオプションパラメータです.デフォルトでは、スマート判定(xml、json、script、html)が実行されます.
詳細な説明
この関数は、以下のような簡単なAjax関数です.
$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

解決:$.post()に最後のエッジを加えたオプションのパラメータdataTypeは「json」タイプです.
例:testを取得する.phpページに返されるjson形式の内容:
$.post("test.php", { "func": "getNameAndTime" },
   function(data){
     alert(data.name); // John
     console.log(data.time); //  2pm
   }, "json");

例:testを取得する.phpページの内容をXMLHttpResponseオブジェクトとして保存し、process()というJavaScript関数で処理します.
$.post("test.php", { name: "John", time: "2pm" },
   function(data){
     process(data);
   }, "xml");

参照リンク:
jQuery ajaxリファレンスマニュアルhttp://www.w3school.com.cn/jquery/jquery_ref_ajax.asp
HTTP方法:GET比較POSThttp://www.w3school.com.cn/tags/html_ref_httpmethods.asp
jQuery ajax-post()メソッド:http://www.w3school.com.cn/jquery/ajax_post.asp
jQuery ajax-get()メソッドhttp://www.w3school.com.cn/jquery/ajax_get.asp
原文住所:http://blog.sina.com.cn/s/blog_6c971aa30102vkaw.html
[END]