4

PHP $_REQUEST が JSON を自動的に変換しないようにする方法を知っている人はいますか? POST 経由でデータを送信していますが、その一部を元の形式のままにして、文字列として保存したいと考えています。

理想的には、文字列のセグメントを「エスケープ」する簡単な方法が必要です。おそらくこれを行う簡単な方法があるようですが、私は見たことがありません。


うわー...この質問の言い回しが正確でないことを許してください。私は数日間ノンストップでプログラミングをしていて、ただ疲れていました。誤解を説明する前に、急いで質問を締め切るとは思っていませんでした。

つまり、javascript オブジェクトを jQuery の $.ajax() メソッドにデータとして渡し、呼び出しに type:"POST" を使用しているということです。$.param() は内部的にオブジェクトを転送用のクエリ文字列としてシリアル化するために使用され、$_REQUEST[] はこの方法で渡されたオブジェクトを複雑なフォーム データの場合と同様に配列構造に変換することに後で気付きました。


クライアントコード

$.ajax({ type: "POST", url: "some.php", data: {"obj":{"key":"val"},"str":"text"} })
4

2 に答える 2

5

jQuery AJAX リクエストを実行すると、データ内のキーと値のペアが JSON ではなく POST パラメーターとして送信されます。データを JSON として投稿する場合は、次のようにする必要があります。

<script type="text/javascript" src="https://raw.github.com/gist/754454/c6401b8cc461f84799503484a0c780a7622b164d/jQuery.stringify.js"><!-- JSON library --></script>

<script type="text/javascript">
  var data = JSON.stringify({"obj":{"key":"val"},"str":"text"}});
  $.ajax({'type':"POST", 'url':"some.php", 'data':{'data':data});
</script>

通常は「データ」引数として渡されるものを使用していますが、代わりに、データ構造の文字列化されたバージョンとしての値を持つ「データ」というポスト パラメーターを作成していることに注意してください。JSON とも呼ばれます。

于 2013-01-09T14:49:42.553 に答える