我有一个调用php页面的ajax函数。我遇到的问题是错误函数一直在调用。什么可以使错误函数调用而不是成功函数?
AJAX:
function register() {
$.ajax({
type: "POST",
url: "php/account.php",
success: function() {
alert("asdf");
},
error: function() {
alert("Could not register. Please try again.");
},
404: function() {
alert("not found");
}
});
}
PHP
<?php
echo "Test";
?>
文件布局为分层视图,如下所示:
index.php
js folder -> registration.js
php folder -> account.php
registration.js和account.php包含在index.php中,因此registration.js和account.php应该与index.php在同一目录中读取。
我做错了什么? :X
答案 0 :(得分:0)
检查php / account.php(您通过ajax调用的url /函数)是否返回json,而不是html。还要检查mime类型是否正确。
最简单的检查方法:查看在firefox浏览器下运行的firebug的“Net”选项卡。
或使用类似以太类的工具,如fiddler或其他。
答案 1 :(得分:0)
使用您的代码但注释掉网址,它可以运作:
http://jsfiddle.net/userdude/MKc3s/
function register() {
$.ajax({
type: "POST",
//url: "php/account.php",
success: function() {
alert("asdf");
},
error: function() {
alert("Could not register. Please try again.");
},
404: function() {
alert("not found");
}
});
}
register();
你应该在Firefox(或Chrome控制台)中使用Firebug,看看ajax调用的URL是什么,以及它报告的错误代码。
您还可以检查它返回的状态代码:
function register() {
$.ajax({
type: "POST",
//url: "php/account.php",
success: function() {
alert("asdf");
},
error: function(xhr) {
alert("Could not register. Please try again. Error "+xhr.status);
},
404: function(xhr) {
alert("not found");
}
});
}
register();
在Firebug / Chrome控制台中,您可以检查整个对象:
console.log(xhr);