0

Android用のphonegapアプリを作成し、ログイン「ロジック」をjavascriptファイルに入れました。ログイン機能が機能する場合もあれば、機能しない場合もあります。そうでない場合、次のエラーが発生します。

10-24 10:01:13.211:Webコンソール(25080):キャッチされていないReferenceError:URLがfile:/// android_asset / www / js / login.js:17で定義されていません

すべてがそこにあり、cordova2.0.0を使用したときは正常に機能していましたが、cordova2.1.0に切り替える必要がありました。スイッチなので、常に正常に動作するとは限りません。これが私がhtmlファイルにリソースを含める方法です:

<html>

    <head>
        <title>Hello World</title>

        <script type="text/javascript" charset="utf-8" src="js/cordova-2.1.0.js"></script>

        <link rel="stylesheet" href="css/jquery.mobile-1.1.1.min.css" />
        <script type="text/javascript" src="js/jquery-1.8.1.min.js"></script>
        <script type="text/javascript" src="js/jquery.mobile-1.1.1.min.js"></script>
        <script type="text/javascript" charset="utf-8" src="js/login.js"></script>    

    </head>
...

これが私のlogin.jsです

$('#page_login_submit').live('click',function(){



  var name = $('#page_login_name').val();
  if (!name) { alert('Please enter your user name.'); return false; }
  var pass = $('#page_login_pass').val();
  if (!pass) { alert('Please enter your password.'); return false; }


  $.ajax({
      url: "http://scoreboard.pronovix.net/?q=scoreboard/user/login.json",
      type: "POST",
      data: 'username=' + encodeURIComponent(name) + '&password=' + encodeURIComponent(pass),
      dataType: "json",
      error: function(jqXHR, textStatus, errorThrown) {
        alert('Login fail: ' + url + '+' + data); //that's line 17
        console.log(JSON.stringify(jqXHR));
        console.log(JSON.stringify(textStatus));
        console.log(JSON.stringify(errorThrown));
      },
      success: function (data) {
        window.location.href = 'index.html';
      }
  });

  return false;
});

誰かがその理由を教えてもらえますか?

どんな助けでも大歓迎です!

心から、

ゾリ

4

1 に答える 1

0

エラーで出力するためにurl変数を参照しようとしていますが、どこにも定義していません。

エラー関数はajax関数のパラメーターにアクセスできないことに注意してください。

考えられる解決策

beforeSend関数を実装すると、URLを保存して後で使用できます

beforeSend: function (jqXHR, settings) {
    url = settings.url + "?" + settings.data;
}

このソリューションは、コールバック関数でjQueryAjaxリクエストのURLにアクセスすることから取得されました

于 2012-10-24T08:17:03.680 に答える