Javascript 使用Jquery+;Firefox上的ASP.NETMVC
我有一个简单的$.ajax请求,我正试图在我的ASP.NETMVC应用程序中获取一些HTML内容Javascript 使用Jquery+;Firefox上的ASP.NETMVC,javascript,jquery,asp.net-mvc,firefox,Javascript,Jquery,Asp.net Mvc,Firefox,我有一个简单的$.ajax请求,我正试图在我的ASP.NETMVC应用程序中获取一些HTML内容 // Load the claim table function GetClaimTable() { $.ajax({ type: "GET", url: "claimtable", data: {}, datafilter: null, d
// 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操作
我在这里读到,这是由于jQuery1.3.2中解决了一个打字错误造成的。但是我有1.3.2,我得到了这个错误
有什么帮助吗?无需执行msg.responseText。msg本身就是responseTExt如果您试图从服务器获取HTML,为什么要指定数据类型:“text”?您的操作返回的内容类型标头是什么?服务器发送的ContentType标头与实际内容之间似乎存在一些不一致之处。我终于找到了发生这种情况的原因。原因是我编写的ajaxSetup可以更顺利地处理jQueryWebService请求。很明显,尽管我重写了新函数中的设置,并且发生了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;
}
});
看起来很无辜。呃?您能发布FF给您的完整解析错误吗?这里没有完整解析错误。就这些了。这是一个字符串:“parsererror”嗯。。。就像我说的请求失败了。在错误函数中,msg具有responseText属性。如果它成功了,它就不会有了。我也尝试过contentType HTML。我最终使用了文本,因为这是一种不应该被解析的内容类型。