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