未捕获的SyntaxError:意外的令牌)“,

时间:2015-03-02 21:11:41

标签: javascript

我知道有一个类似的问题被提出但在我的案例中没有任何帮助。

我正在开发Cordova应用程序。我在应用程序上运行了一系列测试,使用我的系统浏览器(IE和Mozilla),一切(导航,Web服务调用)都能正常工作

现在使用Eclipse,从模拟器中,我尝试登录到应用程序(身份验证应该调用web服务),但没有任何反应。

在检查LogCat时,我看到了一个异常:

未捕获的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........................// 

请问我做错了什么?我被卡住了。

1 个答案:

答案 0 :(得分:2)

Imaxo,你的代码风格不是很好,你需要做以下事情:

  1. 在加载DOM /窗口后导入数据
  2. 声明变量
  3. 不要将事件附加到文档(键盘事件除外) 没有形式的解雇)
  4. 在提交数据之前准备数据
  5. 这是一个小例子:

    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

    告诉你的问题,你的代码中某处你写了多余的“)”