1

問題の「ファイル」は、実際には Ajax 呼び出しです。特定のファイルで ajax 呼び出しごとにほぼ 1 つのエラーが発生しています。以前はフィクスチャをオンにしていましたが、その後削除しました。

エラー:

failed to open file  file:/profile/getPolicy   JavaException: java.io.FileNotFoundException: /profile/getPolicy (No such file or directory) 
Exception in thread "Thread-2" org.mozilla.javascript.EcmaError: TypeError: Cannot call method "indexOf" of null (steal/rhino/env.js#24532)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3654)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3632)
    at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3660)
    at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3679)
    at org.mozilla.javascript.ScriptRuntime.undefCallError(ScriptRuntime.java:3698)
    at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2221)
    at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2214)
    at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3143)
    at script(steal/rhino/env.js:24532)
    at script(steal/rhino/env.js:2278)
    at script.makeRequest(steal/rhino/env.js:24484)
    at script(steal/rhino/env.js:2027)
    at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2487)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:164)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
    at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:162)
    at org.mozilla.javascript.Synchronizer.call(Synchronizer.java:79)
    at org.mozilla.javascript.tools.shell.Runner.run(Global.java:1162)
    at org.mozilla.javascript.Context.call(Context.java:515)
    at org.mozilla.javascript.ContextFactory.call(ContextFactory.java:507)
    at org.mozilla.javascript.tools.shell.Runner.run(Global.java:1156)
    at java.lang.Thread.run(Thread.java:662)
could not load script  http://localhost:3000/socket.io/1/?t=1334594888337&jsonp=0  
  TypeError: Cannot find function 0.0. 
!!!!!!!!!!! ERROR !!!!!!!!!!!

-message    = Cannot find function 0.0.
-fileName   = http://localhost:3000/socket.io/1/?t=1334594888337&jsonp=0
-name       = TypeError
-lineNumber = 0
failed to open file  file:/profile/getProfile   JavaException: java.io.FileNotFoundException: /profile/getProfile (No such file or directory) 
Exception in thread "Thread-4" org.mozilla.javascript.EcmaError: TypeError: Cannot call method "indexOf" of null (steal/rhino/env.js#24532)

ご覧のとおり、次のエラーは次の ajax 呼び出しに関連しています。ajax 呼び出しで奇妙なことは何もしていません。

$.ajax({
        url:"/profile/getProfile",
        type:"get",
        success:function(data){
            try{
                STATE.PROFILE = JSON.parse(data);
            }catch(err){
                STATE.PROFILE = data;
            }
            updateState();
        }
    });

ビルドしようとしたときにこれらのエラーが発生する理由を知っている人はいますか? このコードはブラウザで正常に動作します!

4

1 に答える 1

0

ブライアン、あなたの言う通り、Ajax 呼び出しを削除するとビルドからエラーが削除されます。言葉遣いは変わったものの。当社の開発者の 1 人が、次のページで「steal.isRhino」について言及しているのを見つけました: http://javascriptmvc.com/docs.html#!migrate

そのため、すべての ajax 呼び出しを if ステートメントでカプセル化すると機能します。

  if(!steal.isRhino) {
  }

ただし、これはアプリケーション全体では実行できません。 幸いなことに、開発者の 1 人が適切な解決策を見つけました。

すべての ajax 呼び出しには、完全な URL が必要です: http://localhost:3000/profile/getProfile - だけではありません - /profile/getProfile

于 2012-04-18T19:16:41.087 に答える