2011-02-09 116 views
0

我无法提交ajax请求。jquery form ajax调用问题

我试着将它设置倒也干脆只是为了看看我是否能得到回应

这里是我的JS:

$(document).ready(function() { 
     $('#mainform').submit(function() { 
       $.ajax({ 
         type: "POST", 
         url: "processform_ajax.php", 
         data: $(this).serializeArray(), 
         dataType: "json", 
         sucess: function (data) { 
           alert("data" . data); 
           //$("#response").append(data); 
         }, 
         error: function(error, txt) { 
           alert(error.status); 
         } 
       }); 
     }); 
}); 

我的PHP是简单,就是

<?php 
     $errors = array ('a' => 'TEST!'); 
     echo json_encode($errors); 
?>                                        

当我尝试用firebug扩展运行时,我看到帖子看起来不错。 (它不应该在这一点无所谓,因为我的PHP只是呼应的东西出来)

在响应方面我看到这个错误:NS_ERROR_NOT_AVAILABLE

这使我相信它不能找到processform_ajax .php,但是当我尝试了url中的绝对url:“”选项。我也可以通过浏览器的地址栏命中php脚本并获得json响应

任何线索?

感谢

+0

在firebug中,请确保当您单击控制台选项卡上的向下箭头时,显示XMLHttpRequests被勾选,您应该获得ajax调用的URL - 这个URL是否正确? – Scoobler 2011-02-09 01:08:35

回答

1

NS_ERROR_NOT_AVAILABLE看起来像一个Firefox“bug /功能”,它试图提交两次电话。

尝试......在你的代码中添加return false,像这样: -

$(document).ready(function() { 
     $('#mainform').submit(function() { 
       $.ajax({ 
        ... 
       }); 

       return false; 
     }); 
}); 

这样,一旦形式是通过您的JS代码提交后,return false会阻止你从“提交”按钮再次提交相同的请求。

+0

这个伎俩。在所有的文档中,我没有提到这一点。令人沮丧。 – bonez 2011-02-09 04:31:30

0

sucess一个错字在你的代码,或者只是对SO?

+0

我的代码错别字,但它不工作不管。回报错误做到了。 – bonez 2011-02-09 04:30:52