我有一个简单的$ .ajax请求,我试图在我的ASP.Net MVC应用程序中获取一些HTML内容。
// Load the claim table
function GetClaimTable() {
$.ajax({
type: "GET",
url: "claimtable",
data: {},
datafilter: null,
dataType:'text',
success: function(msg){
alert(msg);
$("#claimTable").html(msg.responseText);
},
error: function(msg, sdf, sdd) {
alert(sdf);
alert(sdd);
}
});
但是我得到了一个解析错误。调用成功,因为我在firefox中看到200 OK,错误有XmlHttpRequest对象,它在responseText属性中有正确的数据。
代码在IE中运行良好但在firefox中失败。 url claimtable是一个简单的MVC Action。
我在这里读到jQuery / ASP MVC -- parsererror in "$.ajax" calls这是由于在jquery 1.3.2中解决的拼写错误。但是我有1.3.2而且我收到了这个错误。
任何帮助?
答案 0 :(得分:0)
如果您尝试从服务器获取HTML,为什么要指定dataType:'text'?您的操作发回的ContentType标头是什么?看起来服务器发送的ContentType标头与实际内容之间存在一些不一致。
答案 1 :(得分:0)
我终于找到了为什么会这样。原因是我编写的ajaxSetup可以更顺畅地处理我的jQuery webservice请求。显然有些事情是错的,即使我在我的新函数中覆盖了设置并且发生了parsererror。我删除了ajaxSetup,现在事情进展顺利。
这是破坏我生命3小时的功能。
$.ajaxSetup({
type: "POST",
cache:false,
contentType:"application/json;charset=utf-8",
data:"{}",
dataFilter: function(data) {
var msg;
if (typeof (JSON) !== 'undefined' &&
typeof (JSON.parse) === 'function')
msg = JSON.parse(data);
else
msg = eval('(' + data + ')');
if (msg.hasOwnProperty('d'))
return msg.d;
else
return msg;
}
});
看起来很无辜。是吗?
答案 2 :(得分:-1)
无需执行msg.responseText。 msg本身就是responseText