在 javascript 中发出 http 请求时出现 400 错误

400 error while making http request in javascript

我ctrl+c Max Payne Wiki文章的部分(它只是任何文本的一个例子):

just a screenshot of how I copy part of the article

然后我 ctrl+v 将这些东西放入我站点中的 <textarea>(不是在代码中,而是在站点呈现的 <textarea> 中)

运行下一个 javascript 代码:

SomeParagraphElement.innerText=document.getElementById('my_txtarea').value;
requestp("aga.php?data="+SomeParagraphElement.innerText, callback_function);

其中 requestp

function requestp(path, run)
{
var request = new XMLHttpRequest();
request.open('GET', path, true); 

request.addEventListener('readystatechange' ,function()
{
if ((request.readyState==4) && (request.status==200))
run( request.responseText);
}
);

request.send(null);

}

在此之后应该有一个数据上传到服务器,但它没有发生,如果我只是用手指从键盘上写东西,甚至插入表情符号 - 一切正常。

Google Chrome debug window 说,我犯了一个 400 HTTP 错误。我试过了

var str= SomeParagraphElement.innerHTML.replace(/(?:\r\n|\r|\n)/g, '%0A'); 和另一个 %blahblah 符号,但它没有改变任何东西。

如果我自己通过按 'enter' 换行,通过键盘它可以正常工作。

我该怎么办?

是的,如果我传递超过 2048 字节的数据,我必须使用 POST 请求。这是一个功能,也许对某人有帮助

function requestp(path, data, callback)
{
var request = new XMLHttpRequest();
request.open('POST', path, true); 
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');//specify this!

request.addEventListener('readystatechange' ,function()
{
if ((request.readyState==4) && (request.status==200))
callback( request.responseText);
}
);

request.send(data);

}