TypeError:elem在升级到jquery 1.10时为null

时间:2013-11-03 04:58:47

标签: javascript jquery backbone.js

我有一个骨干代码,如下面的

owned: function(){
    this.url = this.options.url.owned;
    this.parse = function(users){
        return users.map(function(user){
            return user;
        });
    };
    this.fetch({
        data: {
            screen_name : login
        }
    });
}

当我执行代码时,我得到以下jquery错误

TypeError: elem is null
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();

将jquery库升级到1.10后会发生这种情况。在我拥有1.8.3并且一切正常之前。

我的控制器

@RequestMapping(value = "/rest/users/suggestions",
        method = RequestMethod.GET,
        produces = "application/json")
@ResponseBody
public Collection<User> suggestions() {
    String login = authenticationService.getCurrentUserLightVersion().getLogin();
    return suggestionService.suggestUsers(login);
}

响应正常,但我现在的解析方法存在一些问题。它是否有可能给出这样的错误,因为该集合是空的。但是在1.8.3中,jquery正在对空集合执行解析。 任何线索。?

1 个答案:

答案 0 :(得分:0)

jQuery 1.9+在解析ajax响应时比&lt; = 1.8.x更严格。
例如,如果您使用Content-Type:application / json获取文档但是响应为空,则它将执行jxhr.error,因为空字符串不是有效的JSON数据。
因此,在开始调试代码之前,请尝试调试请求。