使用POST和AJAX获取数据

问题描述:

我想使用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传输。任何想法为什么会发生?

问题回显回数据集毕竟是我在我的HTML页面中使用提交输入字段,如下所示:

<input type="submit" /> 

当使用更改(刷新)URL时。

使用:

<input type="button" /> 

的问题已得到修复。

你可以更容易地使用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

方式使用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