0

我有一个 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(),但是它也不起作用。

4

2 回答 2

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 长度,仍然应该发出请求;尽管被截断。我正在接近某种阻止请求的服务器验证。

于 2010-03-31T11:47:32.780 回答
0

您需要使用 post 而不是 get:

$.ajax({
    url: "applicationurl/controllerActionMethod", 
    data: { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 },
    dataType: "json",
    type: "POST",
    success: function(jsonResult) {
    }
});
于 2010-03-31T11:48:38.860 回答