ここにはこの質問がたくさんあることを知っています。同じ質問を検索するのに丸一日かかりました。私の答えは何もありませんでした!ですから、私がただ複製しているだけだということわざを閉じないでください。
別のjsファイルと同じページで呼び出されるPHPファイルがあります。このPHPファイルは配列をエンコードし、同じページでエコーします(これは、ajaxリクエストから呼び出されたときです)。
$data = array(
"status" => $status,
"message" => $message,
);
echo json_encode($data);
$status と $message の値は、それらの上のいくつかの条件によって決定されます (ここではそれほど重要ではありません)。この PHP ファイルはインデックス ファイルの先頭で呼び出されるため、<!doctype html>
タグの前に JSON がエコーされます。さて、jsファイルで、このJSONを処理しようとしている部分は次のとおりです。
$.post($formUrl, $formData, function(data) {
$data = $.parseJSON(data);
alert($data.status);
});
変数について心配する必要はありません。変数は問題ではありません。ここで唯一の問題はその$data = $.parseJSON(data);
部分です。このコードを実行すると。成功しても何も起こりませんが、PHP ファイルには、正しく実行されるデータベースへの挿入コマンドがあります。この JSON を除いて、すべて正常に動作します。取得できません! これを試すと:
$.post($formUrl, $formData, function() {
$str = '{"a":1,"b":2,"c":3,"d":4}';
$data = $.parseJSON($str);
alert($data.a);
});
期待どおりに動作し、アラート 1 が表示されます。問題は、$.parseJSON()
が JSON を含む HTML ファイルを解析できないことです。前述したように、PHP ファイルは < !doctype html >
.
私は今とても必死です。誰でも助けることができますか?