Что происходит с моим кодом AJAX? - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть функция ajax, которая вызывает страницу php.Проблема, которую я получаю, заключается в том, что функция error продолжает вызывать.Что может быть причиной вызова функции ошибки вместо функции успеха?

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, поэтому регистрации.js и account.php должны читаться так же, как и в том же каталоге, что и индекс.php.

Что я делаю не так?: X

Ответы [ 2 ]

0 голосов
/ 17 апреля 2011

Используя ваш код, но комментируя URL, он работает:

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();

Вам следует использовать Firebug в Firefox (или консоли Chrome) и посмотреть, какой URL-адрес вызывает ajax-вызов и какой код ошибки он сообщает.

Вы также можете проверить возвращаемый код состояния:

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);
0 голосов
/ 17 апреля 2011

Убедитесь, что php / account.php (URL / функция, которую вы вызываете через ajax) возвращает json, а не html. Также проверьте, что тип MIME правильный.

Самый простой способ проверить: см. Вкладку «Net» firebug, работающего под браузером firefox.

Или используйте инструмент, подобный etherpeek, такой как скрипач или другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...