2013-04-23 7 views
0

Я пытаюсь отправить длинную строку через ajax на php-страницу, которая будет обрабатывать ее и возвращать то, что мне нужно, я думаю, что она превышает пропускную способность GET или что-то в этом роде! , но по какой-то причине он не работает
Отправка длинной строки через ajax не работает

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'; 
    } 
} 

как я могу сделать это работает!

+3

Там есть предел размера URL. Используйте POST, если вам нужно отправить что-то большое. – Barmar

+0

Другая проблема заключается в том, что вам нужно URL-кодировать строку. Если он содержит '&', он будет отрезан там. – Barmar

+0

Не могли бы вы показать мне пример? – Husamuddin

ответ

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

Для решения проблемы URL-кодирования, сделайте следующее:

xhr.open('GET', 'read.php?string=' + encodeURIComponent(string), true); 
Смежные вопросы