javascript - 带有回调的 Javascript 类中的 jQuery 调用问题

标签 javascript jquery oop callback

我使用 JavaScript、jQuery 和 JSONP 进行异步、跨域 WCF 服务调用。我已经成功地使用了此功能,因此我知道我遇到的问题不在服务端。

我将测试客户端站点设置为使用 getJSON 方法进行内联 jQuery 调用,并且工作正常。然而,我随后尝试接受 jQuery 调用并将它们放入 JavaScript 类中。现在我无法触发回调。

这工作正常(工作示例中的函数添加在页面本身的脚本标记中):

function handleResponse(result) {
    if (result.Success) {
        // do something
    }
    else {
        // do something else
    }
}

function validate(serviceURL, data) {
    $.getJSON(serviceURL + "/Validate?data=" + data + "&callbackHandler=?", handleResponse);
}

当我尝试创建一个类来将此功能包装在单独的 .js 包含文件中时,回调不会触发。以下是 .js 包含文件中的类代码:

function serviceProxy(myServiceURL) {
    this.serviceURL = myServiceURL;

    this.validate = function(data, successCallback, failureCallback) {
        $.getJSON(this.serviceURL + "/Validate?data=" + data + "&callbackHandler=?", function(result) {
            if (result.Success) {
                successCallback();
            }
            else {
                failureCallback(result.ErrorMessage);
            }
        });
    };

下面是直接在页面上的脚本标记中编写的用于进行调用的 JavaScript:

function handleSuccess() {
    // do something
}

function handleFailure(message) {
    // do something else
}

function validate(serviceURL, data) {
    var proxy = new serviceProxy(serviceURL);
    proxy.validate(data, handleSuccess, handleFailure);
}

调试时,会执行 getJSON 调用,但永远不会到达handleSuccess 和handleFailure 回调。任何建议将不胜感激。

提前致谢,

最佳答案

您是否尝试过替换:

if (result.Success) {
            successCallback();
    }

与:

if (result.Success) {
            successCallback(result);
    }

关于javascript - 带有回调的 Javascript 类中的 jQuery 调用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170845/

相关文章:

javascript - 在每个 div 上单击时动态添加 ids

javascript - 如何获取通过 servlet 中的 jquery 添加的动态填充列表的值

javascript - 如何在不使用脚本标签的情况下注入(inject) javascript?

javascript - 类型错误 : click called on object that does not implement interface HtmlElement

php - Ajax POST 请求返回 int 而不是字符串

java - Java 8 是否提供了访问者模式的替代方案?

c++ - 可能的范围问题 c++

javascript - 如何正确地将 jQuery 从索引页面移动到单独的 javascript 文件中?

javascript - jqmobi动态添加项目到页脚?

javascript - 类与原型(prototype)属性