今天在我正在研究的网站上,我将jQuery的版本从1.4更改为1.5.1,但是这导致了一个依赖getJson
函数停止工作的函数,我看了API和因为请求是一个getRequest,我认为它是向后兼容的。
以下是代码:
function EmailAutoComplete(firstName, lastName, target) {
// Query /AutoComplete/Email?FirstName=&LastName= for an e-mail
// list and populate the select box target with the results.
$.getJSON('@Url.Action("AutoComplete", "Email")', {
FirstName: firstName,
LastName: lastName
}, function(matchingEmails) {
var oldVal = target.val();
target.empty();
if (matchingEmails == null || matchingEmails.length == 0) {
target.append('<option value="">E-mail address not found</option>');
} else {
$.each(matchingEmails, function(key, val) {
var selected = (val == oldVal) ? 'selected="selected"' : '';
target.append('<option value="' + val + '" ' + selected + '>' + val + '</option>');
});
if (matchingEmails.length > 1) {
target.addClass("multipleEmailsAvailable");
} else {
target.removeClass("multipleEmailsAvailable");
}
}
});
}
还有其他人有这样的问题吗?
谢谢, 亚历克斯。
答案 0 :(得分:4)
尝试改为使用$.ajax()
并指定dataType: "text json"
从jQuery 1.5开始,jQuery可以转换为 dataType来自它收到的内容 Content-Type标题给你 要求。例如,如果你想要一个 文本响应被视为XML, 使用“text xml”作为dataType。您 也可以发出JSONP请求 作为文本接收,并由 jQuery as XML:“jsonp text xml。” 同样,一个速记字符串如 “jsonp xml”将首先尝试 从jsonp转换为xml,和 失败,从jsonp转换为 文本,然后从文本到xml。
答案 1 :(得分:0)
我遇到了同样的问题。
原来我的json文件无效。
修复我的json文件后,getJson再次像魅力一样工作。