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

发布于 2024-08-26 21:14:19 字数 393 浏览 2 评论 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(),但它也不起作用。

I have a MVC web application. I am calling the controller method through the getJSON() method of the jquery.

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

});

Here I am passing the json values into the parameter1 and parameter2. The problem is that when length of the parameter2 is more than 2500 then it does call the controllActionMethod.

I have also used the $.ajax method instead of getJSON(), however it also does not work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

电影里的梦 2024-09-02 21:14:20

我假设你的意思是它不调用控制器。

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 长度,仍应发出请求;虽然被截断了。我正在尝试某种服务器验证来阻止请求。

I'm assuming you mean it doesn't call the controller.

There is a maximum limit to GET requests (implemented in browsers, not servers); and 2500 is very close to it on some browsers.

You should consider making a POST request instead: http://api.jquery.com/jQuery.post, where the limit is much larger.

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

}, 'json');

Just to clarify, if you go over the GET length, the request should still be made; albeit truncated. I was edging towards some sort of server validation preventing the request.

煞人兵器 2024-09-02 21:14:20

您需要使用 post 而不是 get:

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

You need to use post rather than get:

$.ajax({
    url: "applicationurl/controllerActionMethod", 
    data: { parameter1: json, parameter2: jsonGrid, parameter3: value3, parameter4: value4 },
    dataType: "json",
    type: "POST",
    success: function(jsonResult) {
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文