0
これは私を狂ってしまいます!AJAXは送信される文字列の内容を変更します
私はJSでこのようなものがあります:コンソールで
xmlhttp.open("POST", "/note.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
console.log(" >>>> " + note + " " + noteHTML);
xmlhttp.send("what=edit¬e=" + note + "¬eHTML=" + noteHTML + "¬eIdx=" + noteIdx);
出力:
>>>> C++ C++
このコードは、私がより同じコンテンツを取得別名note.php
で、正しくて、テキストの大半を送信しますJS側のコンテンツですが、何らかの理由で文字列C++
に非常に奇妙なことがあります。文字列であるnote
またはnoteHTML
がC++
に設定されている場合、PHP側に到着するもの(note.php
)はC
で、C++
ではありません!!これは私には意味をなさない。多分私が選んだエンコーディングに何か問題があります。私はhtml
とplain/text
を試しましたが、何らかの理由で私はPHP側で何も得られませんでしたので、私はこの方向をさらに検討することをあきらめました。どんな考え?ブラウザで
else if ($_POST['what'] == "edit")
{
printArray($_POST);
}
出力:
what => edit note => C noteHTML => C noteIdx => 17no
WHY?あなたがこの(各要素に対してencodeURIComponent()
を使用)のようにそれを変更する必要が
'+'は特別なシンボルです。そして、あなたは 'encodeURI'を使用する必要があります –
しかし、それはエンコーディング自体の世話をすることになっていますか? – user18490
'+' repesentsはURLの中にあるので、 '?abc = a + b + c'は内容 'a b c'を持つ' $ _GET'フィールド 'abc'にあります。 – JustOnUnderMillions