1

私は以下のようなJavascriptを持っています..

    <!DOCTYPE html>
    <html>
    <head>
    <script src="C:\User\Sample\src\jquery-1.8.2.min.js" type="text/javascript"></script>

    <script>
    $(document).ready(function(){
    var sessiontoken;
    var supportCors = $.support.cors;
    var sessiontoken ;
    $.support.cors = true;

    $.ajax({
               type: 'POST',
               url: "https://sessionmanagerg.abc.com/xyz/obj/Session",
               dataType: "json",
               data: {
                   UserId: "TestUser" + "101818",
                   CSK1: "csk1",
                   CustId: "custid1"
               },
        success: function (data) {
                   $.support.cors = supportCors;
                 sessiontoken=data.Token;
        alert(sessiontoken);
               },
               error: function (xhr, textStatus, error) {
                   $.support.cors = supportCors;
                   alert("responseText: " + xhr.responseText);
                   alert("XHR statusText: " + xhr.statusText);
                   alert("textStatus: " + textStatus);
                   alert("error: " + error.message);
               }


    });
    });


    </script>
    </head>
    <body>

    </body>
    </html>

IE、chromeで実行した後、セッショントークンを生成します(ただし、どういうわけかmozillaではありません)。このスクリプトを Rhino の ScriptEngine または Javax.script (jdk 1.6) Api で実行したいと考えています。Javax.script を使用して上記の方法を試しましたが、engine.eval(".."); を使用して jquery-1.8.2.min.js ファイルをロードしたにもかかわらず、「$」記号が認識されないなどのエラーが発生します。

また

上記のjavascriptと同じ機能を実行する完全に新しいJavaコードを生成できれば素晴らしいと思います.誰かがこれについていくつかのポインタを提供できますか?

4

1 に答える 1

0

このようなスクリプトを実装する際の課題の 1 つは、javax.scriptまたは Java/Rhino ランタイムにブラウザーの DOM 構造 (ajax XMLHttpRequest コンストラクトを含む) が含まれていないことです。ただし、サーバー側のスクリプト環境を使用してこれを再現することは可能です。これらの 1 つはenv.jsと呼ばれ、ここで導入され、ここで維持されています。このパッケージを使用して、ブラウザのようなアナログで実行される js テストを実装したので、あなたのようなスクリプトに対するその有効性を証明できます。

また、個人的には使っていませんが、 phantomjsも同じように使えると聞いているので、そちらも参考にしてみてはいかがでしょうか。

于 2013-02-25T10:43:36.290 に答える