Javascript getJSON仅返回HTMLCollection

Javascript getJSON仅返回HTMLCollection,javascript,jquery,getjson,Javascript,Jquery,Getjson,我正在尝试使用getJSON(有点像jquery.ui.autocomplete)创建一个电子邮件有效性(即,如果电子邮件不存在,检查数据库)。 但是,从回调接收的数据似乎只是当前页面的站点标题,而不是InitSource函数调用的页面。(我已经检查过了,正确地调用了它)。 谁能告诉我出了什么问题,为什么我得到的是HTMLCollection,而不是正确的JSON 代码如下: $.fn.Functions = { InitSource: function () {

我正在尝试使用
getJSON
(有点像
jquery.ui.autocomplete
)创建一个电子邮件有效性(即,如果电子邮件不存在,检查数据库)。 但是,从回调接收的数据似乎只是当前页面的站点标题,而不是
InitSource函数调用的页面。(我已经检查过了,正确地调用了它)。
谁能告诉我出了什么问题,为什么我得到的是
HTMLCollection
,而不是正确的
JSON

代码如下:

$.fn.Functions = {
    InitSource: function () {   
        $.getJSON(this.source, { term: this.getTerm() }, this.response(data));
    },  
    onChange: function () {   
        this.InitSource();
    },  
    response: function (data) {   
        alert(data.result);
    },  
    getTerm: function () {   
        var key = $('.' + this.selector).val();
        if (key.length > 0) return key;
    }   
};
this.source
是一个相对路径:
/EmailCheck.aspx

并返回单个值:
{“result”:“true”}


有人能告诉这个新手为什么他在回调中得到了完全错误的数据吗?

您正在调用函数,然后将返回值发送到
getJSON
调用。使用不带参数的函数名来发送函数引用,而不是调用它

在使用方法时,需要使用
代理
,以便在对象的上下文中调用该方法:

$.getJSON(this.source, { term: this.getTerm() }, $.proxy(this.response, this));

请使用Firebug或类似工具来确定浏览器在AJAX请求中发送了什么,以及在响应中返回了什么。如果您仍然感到困惑,请将请求/响应添加到您的问题中。请求和响应完全正确,请求:GET/EmailCheck.aspx?term=test,响应:{“result”,“true”}。无需担心,@Guffa是正确的。您是对的,但感谢您的快速响应和帮助!:)像做梦一样工作!非常感谢你!