这让我发疯了!
我在JS中有这样的东西:
movl $.L.str.2, %edi # .L.str.2 is "%d\n"
xorl %eax, %eax
callq printf
控制台输出:
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++
中我得到的内容与JS端的内容相同,但无论出于何种原因,它都对字符串note.php
做了一些非常奇怪的事情。 。当字符串的C++
或note
设置为noteHTML
时,PHP端(C++
)到达的内容为note.php
而不是C
} !!这对我来说没有任何意义。也许我选择的编码有问题。我试过了C++
和html
,但无论出于什么原因,我甚至都没有在php方面得到任何东西,所以我放弃了进一步研究这个方向。知道为什么吗?
plain/text
浏览器输出:
else if ($_POST['what'] == "edit")
{
printArray($_POST);
}
WHY吗
答案 0 :(得分:0)
您必须像这样更改它(在每个元素上使用encodeURIComponent()
):
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=" + encodeURIComponent(note) + "¬eHTML=" + encodeURIComponent(noteHTML) + "¬eIdx=" + encodeURIComponent(noteIdx));