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("..");

或者

如果我可以生成一个全新的 java 代码,它与上面的 javascript 具有相同的功能,那就太好了。谁能提供一些关于这个的指针?

4

1 回答 1

0

实现这样的脚本的挑战之一是javax.script或 Java/Rhino 运行时不包含浏览器的 DOM 结构(包括 ajax XMLHttpRequest 构造)。但是,可以使用服务器端脚本环境重新创建它。其中之一称为env.js,它在此处介绍并已在此处维护。我已经使用这个包来实现在类似浏览器的模拟中执行的 js 测试,所以我可以证明它对像你这样的脚本的有效性。

我也听说过,虽然没有亲自使用过,但phantomjs也适用于同样的事情,所以你可能也想看看。

于 2013-02-25T10:43:36.290 回答