Как использовать сообщение AJAX для отправки данных в php-файл в phonegap? - PullRequest
0 голосов
/ 23 января 2012

Я пытаюсь сделать порт 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); 
                }

            });
        });

так, это работает правильно. Но когда я пытаюсь опубликовать данные тома, это не так:

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

но это тоже не получается.

Есть идеи, почему get работает, а не почта? Прямо сейчас я ничего не возвращаю из функции php, но я должен по крайней мере получить предупреждение success.

большое спасибо

edit: php код, который я проверяю для vals, отправленного ajax. Одним из них является name

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

1 Ответ

0 голосов
/ 23 января 2012

Ваш код на стороне клиента выглядит хорошо.И вызовы $.ajax, и $.post должны успешно передать значения формы в сценарий на стороне сервера.Отныне этот скрипт выполняется и может выдавать ошибки.Я бы порекомендовал вам использовать инструмент отладки javascript, такой как FireBug в FireFox или панель инструментов разработчика Chrome в Google Chrome, которая позволяет отслеживать запрос AJAX.Вы можете увидеть фактический отправленный запрос и ответ от сервера.Вы можете увидеть код состояния HTTP, возвращаемый сервером, а также точный ответ.Так что, если этот код состояния отличается от 200 (как в вашем случае), на клиенте будет выполнен обратный вызов error.Итак, отладьте и исправьте ваш functions.php серверный скрипт.

...