.ajax不会POST,但GET没有问题

时间:2009-12-01 09:49:09

标签: jquery ajax

我正在尝试使用jQuery的.ajax()函数提交表单。看起来它应该很简单,但由于某种原因我无法获得类型:“POST”才能正常工作。使用类型:“GET”没有问题,但“POST”似乎没有实际发布任何东西到我接受的PHP脚本。当我执行print_r($ _ POST)时,它返回一个空数组。我尝试在表单输入上使用输入类型“提交”和“按钮”但它似乎没有改变任何东西。任何想法为什么它不起作用?

Ps - 此页面上有超过1个表格。

编辑澄清
如果我在使用type:“GET”时执行print_r($ _ GET),它会输出所有正确的数据,但是如果我更改.ajax选项以输入:“POST”并尝试print_r($ _ POST)它会显示一个没有内容的空白数组。

Js代码:

var dataString = 'reply_text='+ test + '&post_id=' + post_id ;

$.ajax({
  type: "POST",
  url: "process.php",
  data: dataString,
  cache: false
  });
  return false;

表格代码:

<form action="" method="post">
<textarea id="textboxcontent" name="reply_text"/>
<input type="submit" name="reply_submit" value="submit comment"/>
</form>

4 个答案:

答案 0 :(得分:2)

这可能会更好:

var text = ...
var post_id = ...

$.ajax({
    type: 'POST',
    url: 'process.php',
    data: { reply_text: text, post_id: post_id }
});

答案 1 :(得分:0)

你如何连接你的活动?你确定它被触发了吗?试着在那里放一个警报或什么东西,以确保?

dataString看起来像什么? type: 'POST'足以使ajax回调成为一个帖子,因此可能是你的数据以错误的方式传递。

答案 2 :(得分:0)

如果您想使用AJAX发布表单,我建议使用jQuery Form Plugin,这样做非常好且不引人注目。

答案 3 :(得分:0)

var formData = {
    'test': $('input[name=text]').val(),
    'post_id': $('input[name=post_id]').val()
};

// process the form
$.ajax({
    type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
    url: 'process.php', // the url where we want to POST
    data: formData, // our data object
    dataType: 'html', // what type of data do we expect back from the server
    encode: true,
    success: function(updatedTable) {
        //alert(updatedTable);
        $('div#tableHolder').html(updatedTable);
    }
})