对于IE6或IE7,getJSON()参数长度超过2500

时间:2010-03-31 11:42:20

标签: jquery asp.net-mvc getjson

我有一个MVC Web应用程序。我通过jquery的getJSON()方法调用控制器方法。

    $.getJSON("applicationurl/controllerActionMethod", { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 }, function(jsonResult) {

});

这里我将json值传递给parameter1和parameter2。问题是当parameter2的长度超过2500时,它会调用controllActionMethod。

我还使用$ .ajax方法而不是getJSON(),但它也不起作用。

2 个答案:

答案 0 :(得分:1)

我假设你的意思是它没有给控制器打电话。

GET请求有一个最大限制(在浏览器中实现,而不是在服务器中实现);在某些浏览器上,2500与它非常接近。

您应该考虑改为发出POST请求:http://api.jquery.com/jQuery.post,其中限制要大得多。

jQuery.post("applicationurl/controllerActionMethod", { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 }, function(jsonResult) {

}, 'json');

只是澄清一下,如果你超过GET长度,仍然应该提出要求;尽管被截断了。我正在接近某种阻止请求的服务器验证。

答案 1 :(得分:0)

你需要使用post而不是get:

$.ajax({
    url: "applicationurl/controllerActionMethod", 
    data: { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 },
    dataType: "json",
    type: "POST",
    success: function(jsonResult) {
    }
});