Jquery .ajax不会发布,但不会出现问题

Jquery .ajax不会发布,但不会出现问题,jquery,ajax,Jquery,Ajax,我正在尝试使用jQuery的.ajax()函数提交表单。看起来应该很简单,但由于某种原因,我无法让类型“POST”正确工作。使用类型:“GET”没有问题,但“POST”似乎并没有实际向我的php脚本发布任何内容。当我执行print\r($\u POST)时,它会返回一个空数组。我尝试在表单输入中使用输入类型“submit”和“button”,但似乎没有任何改变。你知道为什么它不起作用吗 Ps-此页上有1个以上的表单 编辑以澄清 如果我在使用type:“GET”时执行print\r($\u GET

我正在尝试使用jQuery的.ajax()函数提交表单。看起来应该很简单,但由于某种原因,我无法让类型“POST”正确工作。使用类型:“GET”没有问题,但“POST”似乎并没有实际向我的php脚本发布任何内容。当我执行print\r($\u POST)时,它会返回一个空数组。我尝试在表单输入中使用输入类型“submit”和“button”,但似乎没有任何改变。你知道为什么它不起作用吗

Ps-此页上有1个以上的表单

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

Js代码:

var dataString = 'reply_text='+ test + '&post_id=' + post_id ; $.ajax({ type: "POST", url: "process.php", data: dataString, cache: false }); return false; var dataString='reply_text='+test+'&post_id='+post_id; $.ajax({ 类型:“POST”, url:“process.php”, 数据:dataString, 缓存:false }); 返回false; 表格编号:

<form action="" method="post"> <textarea id="textboxcontent" name="reply_text"/> <input type="submit" name="reply_submit" value="submit comment"/> </form>
你如何安排你的活动?你确定是贝恩触发的吗?试着在里面放个警报什么的来确定吗


您的
dataString
看起来像什么<代码>键入:“POST”足以使ajax回调成为POST,因此可能是您的数据以错误的方式传递。

这可能会更好:

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

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

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

在AJAX请求中使用的
dataString
变量来自哪里?我正要问同样的问题。嗨,Darin,dataString直接位于.AJAX请求之前:var dataString='reply_text='+text+'&post_id='+post_id;我知道dataString工作正常,因为当我使用GET时,它工作正常。我应该使用不同的字符串格式吗?ps-我已经在上面的问题中添加了dataString Hi Darin,我刚刚尝试过,但对于POST仍然不起作用(尽管它仍然适用于GET)。当您查看FireBug时,您看到发送的参数了吗?我开始怀疑你的服务器端脚本有问题,而不是javascript。哦,哇,很棒的提示。我检查了FireBug,它给了我302分作为我的帖子。原因是我正在使用.htaccess重写我的URL,但结尾没有“.php”。在我的js中,我告诉ajax转到“process.php”,而我只需要将其发送到“process”(不带.php)。我真不敢相信,我把它修好了!非常感谢你:D@justinl很好的提示,这正是我正在做的,htaccess url重写。非常感谢。我已经更新了原始问题以回答您的问题。谢谢
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);
    }
})