0

我有一个如下的主干代码

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 在空集合上正确执行了解析。任何线索。?

4

1 回答 1

0

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

于 2013-11-03T11:56:01.373 回答