2015-01-01 6 views
0

Я делаю мобильное приложение с использованием Intel XDK для устройств Android, я использовал эмулятор и локальный сервер разработки (127.0.0.1) для тестирования моего PHP-кода. Я связался с моим сервером, используя следующие способы: $.ajax(), $.post() и $.get(). Затем я решил, что подошел к подходящей точке, где должен был создать APK-файл приложения, направить исходный код PHP на онлайн-сайт и протестировать его через соответствующий мобильный. Таким образом, я сделал, я сделал базу данных, экспортируя мои текущие данные из PMA, а затем изменил все URL-адреса во всех моих запросах, указав нужное место и протолкнул свой PHP-источник на FTP. Затем я протестировал свое приложение и был шокирован результатами.jQuery запросы на мобильное приложение не работают

Ошибка № 1:

PHP Fatal error: Can't use function return value in write context in /home/scrifalr/public_html/sm/api/v1/modules/register/register.php on line 9

Что я сделал, чтобы исправить:

Я проверил источник и, по-видимому, после изменения этого !empty(trim($_POST['username'])) к empty($_POST['username']), казалось, исправить эту ошибку.

So вопрос один. Почему эта ошибка не появилась на моем локальном сервере и не сказал мне тогда, что я не могу этого сделать?

Ошибка № 2:

У меня есть логин/регистрация, которая отправляет запросы, которые все работы, я изменил выше PHP и они начали работать. Однако у меня есть страница выхода из системы, которая, кажется, не работает, код показан ниже:

logout.html

<!DOCTYPE html> 
<html> 

<head> 
    <link type="text/css" rel="stylesheet" href="css/styles.css"> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script src="intelxdk.js"></script> 
    <script src="cordova.js"></script> 
    <script src="xhr.js"></script> 
    <script src="js/libs/app.js"></script> 
    <script src="js/libs/functions.js"></script> 
    <script src="js/logout.js"></script> 
    <title>Logout</title> 
</head> 

<body> 

</body> 

</html> 

Как вы можете видеть, это не имеет никакого отношения к тому же включает в себя. Следующий файл является файл JavaScript:

logout.js

window.onload = function() { 
    getSessionData(); 
    $.post(
     "http://sm.script47.net/api/v1/modules/logout/logout.php", { 
      "userID": window.userID 
     }, function (data) { 
      alert(data); 
      if (data == 1) { 
       document.location.href = "index.html"; 
      } else { 
       showTimedMessage(data, "error", 4000); 
      } 
     } 
    ); 
}; 

Как вы можете видеть, она содержит запрос на почту и функцию под названием getSessionData(), поэтому после того, что казалось, как возраст пытается отладить I пришел к выводу, что это ошибка getSessionData(), которая снова кажется странной, поскольку она работала в эмуляторе, и все пути к запрошенным файлам верны. Только для тех, кто хотел бы видеть эту функцию:

window.token = null; 
window.userID = null; 
window.username = null; 
window.emailAddress = null; 
window.IP = null; 

function getSessionData() { 
    $.ajax({ 
     url: 'http://sm.script47.net/api/v1/modules/sessionData/sessionData.php', 
     "type": "GET", 
     dataType: "json", 
     async: false // This comment is not in the code, I know I shouldn't have this I'm using it for now and it works with it like this. 
    }).done(function (data) { 
     window.token = data.token; 
     window.userID = data.userID; 
     window.username = data.username; 
     window.emailAddress = data.emailAddress; 
    }); 
} 

Так вопрос два в том, что, как приходят даже после того, как я проверил это тщательно и обеспечить, чтобы все пути правильны и загружен точно такой же код, почему отправляются некоторые запросы, например Войдите, зарегистрируйтесь, пока другие (logout) не работают?

+0

потому что вы не понимаете базовых понятий каждого языка программы. если вы хотите поправиться, это слова, которые вам нужно услышать. Я бы никогда не узнал много кода вообще, если бы я не был исключен из stackoverflow. – r3wt

+1

отредактирован, чтобы объяснить, почему был опубликован такой «грубый» ответ. я дам вам подсказку. вам нужно специально посмотреть на jQuery '$ .ajax' api.вы можете установить функцию обратного вызова для ошибок и определить, что такое ошибка, если она исходит из php. если не из php, вы можете посмотреть в консоли, если она исходит из javascript. – r3wt

+0

@ r3wt согласился, я не так опытен в кодировке переднего конца, поскольку я вернулся, но я пробовал? Я только повернулся к StackOverFlow после того, как понял, что потушил все другие возможности. Код работал нормально, что, безусловно, означает, что я понял некоторые понятия. Однако он перешел от перехода от эмулятора к мобильному. Вот почему я обратился к StackOverFlow, чтобы помочь понять, почему он сломался, и это поможет мне в будущих ссылках. Так что нет, я не согласен с вашим заявлением, может быть, я узнаю больше, если люди научат меня, где я ошибся, нет? – Script47

ответ

0

После некоторой дополнительной отладки оказалось, что вызов AJAX завершился неудачей, поскольку синхронные вызовы AJAX не разрешены.

Смежные вопросы