2015-03-02 4 views
-5

Я знаю подобный вопрос будет предложен, но никто не помог в моем случаеUncaught SyntaxError: Неожиданный маркер)»,

Я разрабатываю приложение Кордовы я провел серию испытаний на приложении и все (навигацию,.. веб-сервис вызова) прекрасно работает, используя мои системные браузеры (IE и Mozilla)

Теперь, используя Затмение из эмулятора, я попытался войти, в приложение (аутентификация должна вызывать WebService), но ничего не происходит.

При проверке LogCat я увидел Исключение:

Uncaught SyntaxError: Неожиданный маркер)», Источник: Файл: ///android_asset/www/login.html

Вот это .js часть сценария:

$(document).on('click', '#S_IN', function() { 
    if (($('#username').val() == "") || ($('#password').val() == "")) { 
    alert("All fields are required."); 
    } else { 
    $.ajax({ 
     type: "POST", 
     data: JSON.stringify({ 
     "username": $('#username').val(), 
     "password": $('#password').val() 
     }), 
     url: "http://127.0.0.1/appName/Service.asmx/Authenticate", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(data) { 
     if (JSON.parse(data.d).toLowerCase() == 'success') { 
      $.mobile.changePage('main.html'); 
     } else { 
      alert("Login failed. Invalid Username or Password combination."); 
     } 
     }, 

     error: function(xhr, status, error) { 
     var err = eval("(" + xhr.responseText + ")"); 
     alert(err.Message); 
     } 
    }); 
    } 
}); 
//..............................Login End........................// 

Pls, что я делаю неправильно? Я застрял.

+2

должен видеть, что находится в 'xhr.responseText' – Hacketo

+1

Кроме того, я не уверен, что вы даже хотите использовать' eval' в первую очередь. Это то, что * JSON * для (предполагая, что 'xhr.responseText' является строковым объектом). – JCOC611

+1

Итак, ваш ответ - это объект JSON со свойством, значение которого является JSON-кодированной * строкой *? В самом деле? – Pointy

ответ

2

Imaxo, ваш код стиля разве так хорошо, что вам нужно сделать последующие вещи:

  1. Procces данных после загрузки DOM/окна
  2. объявляются переменные
  3. не придают события к документу (кроме событий клавиатуры, которые должны обожженных без формы)
  4. подготавливают данные, прежде чем положить его просить

и вот маленький пример:

firstFile.js

var app = app || {}; 

app.auth = (function(){ 

    return { 
     initialize: function(){ 
      //declare variable 
      //this.variable = global for this object 
      //var some; = local for this method 
     }, 
     validate: function(){ 
      //validate data 
     }, 
     send: function(){ 
      //send AJAX request 
     } 
     //other methods 
    } 

})(); 

secondFile.js

var app = app || {}; 
$(function(){ 
    app.auth.initialize(); 
}); 

это показательно модульная модель с базовой моделью организации модуль, но лучше смотреть на require.js

, ответив на вопрос, где-то в вашем коде вы пишете лишний ")"

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