php が json 形式を返せない問題の解決策: 1. エラーの具体的な原因を特定し、「var a=JSON.stringify(error);alert(a);」コードを実行します。 PHPコードを変更して「var b= eval("(" data ")");」コードを実行するだけで十分です。
このチュートリアルの動作環境: Windows 10 システム、PHP バージョン 8.1、DELL G3 コンピューター
次の場合はどうすればよいですかphpはjson形式を返すことができません??
#php は標準の JSON 形式を返すことができません: $.ajax によって返されるデータは成功した解決策を実行できません
JSON の標準形式: {"key":"value","key":"value"}
1. 次のようなフロントエンド送信コード
$.ajax({ type: "post", url: "index.php?m=Index&a=accessIn&act=access", async: true, data: { login_access: $('#login_access').val() }, dataType: "text", success: function (data) { if (data.codeId == "0") { alert(data.err); } else { alert(data.err); window.location.href = "index.php?m=Index&a=lockData"; } }, error:function(error){ var a=JSON.stringify(error); alert(a); }});
2. PHP バックグラウンド処理後のリターン コードは:
$res['err'] = "欢迎您"; $res['codeId'] = "1";
console.log(data) で、次のように表示されます: {err: "Wrong passwd selected!", codeId: "0"}, code キーには二重引用符が含まれておらず、非標準の JSON 形式であるため、$.ajax によって返されるデータは失敗します。
3. 分析は次のとおりです:
エラーの具体的な原因を特定します。返されたオブジェクトの形式は [object object] であるため、変換する必要があります。理由を見つけてください:
var a=JSON.stringify(error); alert(a);
形式が正しくない場合、返されるエラー コードは基本的に:readyState=4、status=200 です。
最初の方法は、php コードを変更して標準の JSON 形式を直接返すことです。データ視覚化コードの書式設定が欠落しているため、この例ではフロントエンドに戻ることで問題を解決しています。
戻り値の型は :dataType: "text",
戻り値の形式は次のとおりです: {"err": "間違ったパスワードが入力されました!", "codeId": "0"}、typeof() を実行すると、文字列形式であることがわかり、文字列を JSON に変換する必要がある場合は、eval 関数を使用します。
eval() 関数は文字列式を実行するために使用されます。そして、式の値を返します - 初心者向けチュートリアルから
var b= eval("(" + data + ")");//一定按照该格式才是标准的JSON格式
完全なフロントエンド コミットとリターン コード:
$.ajax({ type: "post", url: "index.php?m=Index&a=accessIn&act=access", async: true, data: { login_access: $('#login_access').val() }, dataType: "text", success: function (data) { var b= eval("(" + data + ")");//string 2 json if (b.codeId == "0") {//读取键值进行判断 alert(b.err); } else { alert(b.err); window.location.href = "index.php?m=Index&a=lockData";//跳转页面; } }, error:function(error){ var a=JSON.stringify(error);//解析对象为字符串,快速确定原因; alert(a); }});
Done!
推奨学習: 「PHP ビデオ チュートリアル 」
以上がphp が json 形式を返せない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。