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是正确的。您是对的,但感谢您的快速响应和帮助!:)像做梦一样工作!非常感谢你!