如何使用ajax post将数据发送到phonegap中的php文件?

时间:2012-01-22 22:01:29

标签: jquery ajax post cordova get

我试图将ajax端口写入php文件,而且似乎不想发送数据。

我有一个使用手机间隙库的Android项目,看起来如果我去了它的工作:

$(document).ready(function () {

            $.ajax({ 
                type: 'GET', 
                url: 'http://example.com/functions.php', 
                data: { get_param: 'login' },
                dataType:'json',
                success: function (data) { 
                    alert('success');
                     });
                }, 
                error: function () { 
                    console.log(XMLHttpRequest.errorThrown); 
                }

            });
        });

所以,这是正常的。但是,当我尝试发布tome数据时,它不会:

var vals = $("#form").serialize();

                    $.ajax({ 
                        type: 'POST', 
                        url: 'http://example.com/functions.php', 
                        data: vals,
                        dataType:'json',
                        success: function (data) {
                            alert('success');
                            $.mobile.changePage( "test.html", { transition: "slideup"} );
                        }, 
                        error: function () { 
                            alert('fail');
                        }

                    });

使用前面的示例,我得到了fail alert

我也尝试过:

   $.post("http://example.com/functions.php",  vals ,
        function(data){ //Your onsuccess call backfunction
            alert(data);  
        }, "json" //retun data type //can be html/json/xml/text
        );
        e.preventDefault();

但这也失败了。

关于为什么获取有效而不是帖子的任何想法?现在我没有从PHP函数返回任何内容,但我至少应该得到success警报。

非常感谢

编辑:php代码我检查了ajax发送的vals。其中之一是name

if (isset($_POST['name'])) {
    return "name";
}

1 个答案:

答案 0 :(得分:0)

您的客户端代码看起来不错。 $.ajax$.post调用都应成功将表单值提交到服务器端脚本。从那以后,它就是这个执行的脚本,它可能会抛出错误。我建议您使用Javascript调试工具,例如FireFox中的FireBug或Google Chrome中的Chrome开发人员工具栏,它允许您监控AJAX请求。您可以看到发送的实际请求和服务器的响应。您可以看到服务器返回的HTTP状态代码以及精确的响应。因此,如果此状态代码不同于200(这是您的情况),则error回调将在客户端上执行。因此,请调试并修复functions.php服务器端脚本。