JSON.stringifyを使用してJSON文字列をGET経由でPHPスクリプトに渡すJS関数があります。json_decodeはlocalhostでは動作しますが、Webサーバでは動作しません
JSONは私のlocalhost上でPHPのデコードを行うだけですが、私のウェブサーバに移動するとすぐに動作を停止します。さらに分析したところ、私のWebサーバーはJSON文字列に\
(スラッシュ)を追加していました。JSONLint.comによれば、スラッシュ付きの文字列は無効なJSONです。
JSON私のウェブサーバ上では次のように現れます:
{\"Product\":\"Walnut Pastry\",\"Size\":\"Slice\",\"Quantity\":\"2\",\"Price\":0}
なぜこれが私のウェブサーバ上で起こるんし、私は、文字列をエスケープするために何ができるのでしょうか? 私はjson_decode(str_replace('/','',$_GET['json']),true);
を試しましたが、どちらもうまくいきませんでした。
"/"は "\"とは異なります。または単にストリングスラッシュを使用してください。 http://php.net/manual/en/function.stripslashes.php – xdazz
これはお勧めできません。マジック引用符をオフにしたサーバで同じコードを実行すると、望ましくない効果があります。 – Pauly