2011-05-09 109 views
1

我想使用AJAX異步地在服務器中發送一些數據。 我需要使用POST方法發送數據,因爲發送的數據相當多 很多字符,並且使用GET創建的URL會太大。那麼這不是問題,但出於美觀的原因,我寧願有小的URL。爲了做到這一點,我使用瞭解釋(問題)here使用POST和AJAX獲取數據

我的Javascript代碼發送的數據是:當我點擊一個按鈕

var code = "code=" + document.getElementById("code_area").value; 
    xmlhttp.open("POST", "run_code.php", true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send(code); 

上面的代碼被執行,但隨後的URL更改爲:localhost/code.php?code=datadatadatadatadatadatadatadatadatadatadatadatadatadata這似乎是沒有什麼不同使用GET,而不是(我URL變得相當大)。我使用了POST,而不是GET,但仍然有數據似乎通過URL傳輸。任何想法爲什麼會發生?

回答

0

問題回顯回數據集畢竟是我在我的HTML頁面中使用提交輸入字段,如下所示:

<input type="submit" /> 

當使用更改(刷新)URL時。

使用:

<input type="button" /> 

的問題已得到修復。

1

你可以更容易地使用jQuery來做到這一點。

$.post("run_code.php", { code: $("#code_area").val() }); 

鏈接:

+0

@equality ..嘗試使用jquery。 4行減少到1. – ariel 2011-05-09 04:02:21

+0

也許服務器發出重定向,並且由於您沒有響應的自定義處理程序,瀏覽器將執行重定向。你有沒有嘗試過不同的瀏覽器? – ariel 2011-05-09 04:53:13

+0

當你說「網址更改爲此」時,你的意思是? – ariel 2011-05-09 04:54:03

0

方式使用jQuery容易...

$.post('yoururlhere.com/phppage', 
     {code:$("#code_area").val()}, 
     function(responseData){ 
      // responseData is the echo'd data set from your php page 
     }, 'json' 
); 

中的數據{}是後KV對

responseData是從PHP