我的ajax代码发生了什么?

时间:2011-04-17 02:12:30

标签: javascript php ajax

我有一个调用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

2 个答案:

答案 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);