在 HTML 中调用外部 dojo javascript

Call external dojo javascript in HTML

我有一个外部 javascript 文件 "RestAPI.js" 看起来像 :

function RestAPI(){ self = this; }
RestAPI.prototype = {
self: null,
urlString: "http://175.xxx.xxx.xxx/JSON/Handler1.ashx",
UserAuthentication:function(userName,passsword,successFunction,failFunction,token) {
    var data = { 'interface': 'RestAPI', 'method': 'UserAuthentication', 'parameters': {'userName':userName,'passsword':passsword}, 'token': token };

    var jsonData = dojo.toJson(data);
    var xhrArgs = {
        url: self.urlString,
        handleAs: 'json',
        postData: jsonData,
        load: successFunction,
        error: failFunction };
    var deferred = dojo.xhrPost(xhrArgs);
}
};

我想在我的 HTML 页面中调用 "UserAuthentication" 函数。

<script src="RestAPI.js">
function SendToServer()
{
    var username = "abc";
    var password = "123";
    var a = RestAPI();
    a.UserAuthentication(username,password);
}
</script>

但这对我来说没有用,我错过了什么?我有 google 几个星期了,没有设法得到任何解决方案。如果有任何帮助可以指导我解决这个问题,我将不胜感激!

这里发生了两件事:

首先,您将 "Send to Server" 函数放在一个脚本块中,该脚本块提供外部 javascript 文件。如果有外部文件来源,大多数浏览器将不会解析块的内部结构。

其次,由于您已将 RestAPI 定义为具有构造函数和实例上下文的对象,因此您需要像调用它一样调用它才能按您的意图使用它;使用 new 关键字创建 RestAPI 对象的新实例。

<script src="RestAPI.js"></script>
<script>
    function SendToServer() {
        var username = "abc"
          , password = "123"
          , a        = new RestAPI()
          ;
        a.UserAuthentication(username, password);
    }
</script>