2013-04-23 75 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 2013-04-23 02:34:53

+0

另一個問題是您需要對字符串進行URL編碼。如果它包含'&'它將在那裏被切斷。 – Barmar 2013-04-23 02:35:44

+0

你能告訴我一個例子嗎? – Husamuddin 2013-04-23 02:36:06

回答

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); 
相關問題