如何使用jdk 1.6's javax.script API's/Rhino Api's

How to invoke a javascript having Jqueries using jdk 1.6's javax.script API's/Rhino Api's

本文关键字:API Rhino Api script javax jdk 何使用      更新时间:2023-09-26

我有一个如下的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或Javax.script(jdk 1.6(Api的ScriptEngine运行这个脚本。我使用Javax.script尝试了上面的方法,但我得到了一个错误,比如"$"符号无法识别,尽管我已经使用engine.eval(".."(加载了jquery-1.8.2.min.js文件;

如果我能生成一个全新的java代码,它能实现与上面javascript相同的功能,那就太好了。有人能对此提供一些建议吗?

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

我也听说,尽管没有亲自使用过,但phantomjs在同样的事情上效果很好,所以你可能也想看看。