我有一个如下的Javascript。。
<!DOCTYPE html>
<html>
<head>
<script src="C:UserSamplesrcjquery-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在同样的事情上效果很好,所以你可能也想看看。