通过ajax发送长字符串不起作用

时间:2013-04-23 02:33:27

标签: javascript ajax

我正在尝试通过ajax将长字符串发送到php页面,该页面将处理它并返回我需要的内容,我认为它超出了GET容量或类似的东西! 但由于某种原因,它不起作用

var string = document.getElementById('text').innerHTML; // so long text
var xhr = new XMLHttpRequest();
xhr.open('GET', 'read.php?string=' + string, true);
xhr.send();
xhr.onreadystatechange = function () {
   if (xhr.status == 200 && xhr.readyState == 4) {
    content.innerHTML = xhr.responseText;
   } else {
    content.innerHTML = 'loading';
   }
}

我怎样才能使它有效!

2 个答案:

答案 0 :(得分:3)

只需替换:

xhr.open('GET', 'read.php?string=' + string, true);
xhr.send();

var body = "string=" + encodeURIComponent(string);
xhr.open("POST", "read.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-Length", body.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(body);

答案 1 :(得分:1)

要解决网址编码问题,请执行以下操作:

xhr.open('GET', 'read.php?string=' + encodeURIComponent(string), true);