jQuery ajax リクエストと json レスポンスの方法は? 質問する

jQuery ajax リクエストと json レスポンスの方法は? 質問する

2 つの POST 値を持つ Ajax リクエストを送信しています。1 つ目は、PHP スクリプトが解析する必要があるアクションを定義する「action」で、もう 1 つは、スクリプトを解析する必要があるユーザーの ID である「id」です。

サーバーは array() 内に 6 つの値を返し、PHP 関数を使用して JSON にエンコードします。json_encode();

私の応答の一部は HTML ですが、JSON にエンコードするとエスケープされて次"/"のようになります。"\/"
これを無効にするにはどうすればよいですか?

また、サーバー応答を受け取ったときにこれを jQuery で表示する方法がわからないため、すべてを div に入れると、要求した数値と HTML コードが表示されるだけだと考えましたが、配列は PHP でエンコードされたとおりに表示されます。

PHP の

$response = array();
$response[] = "<a href=''>link</a>";
$response[] = 1;
echo json_encode($response);

jQuery:

$.ajax({
    type: "POST",
    dataType: "json",
    url: "main.php",
    data: "action=loadall&id=" + id,
    complete: function(data) {
        $('#main').html(data.responseText);
    }
});

これを機能する JSON にするにはどうすればよいでしょうか?

ベストアンサー1

電話する必要があります

$.parseJSON();

例えば:

...
success: function(data){
       var json = $.parseJSON(data); // create an object with the key of the array
       alert(json.html); // where html is the key of array that you want, $response['html'] = "<a>something..</a>";
    },
    error: function(data){
       var json = $.parseJSON(data);
       alert(json.error);
    } ...

これを参照してください参考:

それでもスラッシュの問題がある場合は、セキュリティ.magicquotes.disabling.phpまたは:関数.stripslashes.php

注記:

$.ajaxここでの回答は、 プロパティを にdataType設定してを使用しようとしたjsonが、それでも間違った応答タイプが返される人向けです。 サーバーで を定義すると問題が解決する可能性がありますが、またはその他のタイプheader('Content-type: application/json');を返す場合、メソッドは に変換する必要があります。 jQuery の古いバージョンでテストを行い、バージョン が渡されたにすべてのコンテンツ タイプを強制的に変換した後でのみテストを行いました。 そのため、この問題が発生した場合は、jQuery のバージョンを更新してみてください。text/html$.ajaxjson1.4.4$.ajaxdataType

おすすめ記事