JavaScriptからPOSTメソッドでいくつかの変数と文字列を送信したいと思います。私はデータベースから文字列を取得し、それをPHPページに送ります。私はXMLHttpRequestオブジェクトを使用しています。 問題は文字列に「&」という文字が数回含まれていることです。PHPの$ _POST配列は複数のキーのように見えます。 "&"を "\ &"とreplace()関数で置き換えようとしましたが、何もしないようです。 誰も助けることができますか?「&」(アンパサンド)文字をAJAX経由で送信するにはどうすればよいですか?
JavaScriptコードと文字列は次のようになります。
var wysiwyg = dijit.byId("wysiwyg").get("value");
var wysiwyg_clean = wysiwyg.replace('&','\&');
var poststr = "act=save";
poststr+="&titlu="+frm.value.titlu;
poststr+="§iune="+frm.value.sectiune;
poststr+="&wysiwyg="+wysiwyg_clean;
poststr+="&id_text="+frm.value.id_text;
xmlhttp.open("POST","lista_ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(poststr);
文字列は次のとおりです。
<span class="style2">"Busola"</span>
はい、encodeURIComponentはそれを行います!ありがとう! – candino
これはデータを安全にエスケープするのに十分ですか、またはアンパサンドの問題を回避するのに十分なだけですか? – Sprottenwels
@Sprottenwelsでは、すべてのデータを適切にエンコードするだけで十分です。この文脈で「安全に」とはどういう意味ですか? –