ASP.Net MVC:HTTP错误414.请求URL太长

我正在开发一个ASP.Net MVC应用程序。 在按钮上单击,我打电话给JavaScript函数。

this.appDetails = function() {

            editorModel.appModel.application.Name = $("#appTitleText").val();
            editorModel.appModel.application.Nicknames_c = $("#appNicknames").val();
            editorModel.appModel.application.Default_HMI__c = $("#AppModel_application_Default_HMI__c").val();
            editorModel.appModel.application.Description__c = $("#appOverviewText").val();

            $.ajax({
                type: 'POST',
                url: '/Dashboard/Application/AppDetailsEdit',
                data: { 'application': editorModel.appModel },

                success: function (events) {

                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR.responseText);
                }
            });

        }

Controller.cs

[Authorize]
    [HttpPost]
    public JsonResult AppDetailsEdit(EditAppModel application)
    {
        if (GetUserId() == Guid.Empty)
        {
            throw new UnauthorizedAccessException("Person Not Logged In");
        }
        login();
     }

我收到错误

HTTP错误414.请求URL太长。

我在javascript函数中发生Ajax调用时出错。 它看起来像URL不超过2000个字符的限制。 在web.config中我没有maxQueryStringLength.Should需要在web.config中设置maxUrl。 我需要什么来解决这个错误?


这里真的不够,无法正确诊断您的问题。 但是,鉴于您将POST(未添加到URL)提交给静态URL字符串,该静态URL字符串不会更改(并且远低于该限制),这很可能是由于需要重定向循环授权。

如果用户没有登录,他们将被重定向到登录页面,但是,如果登录页面上的某些内容需要授权,他们会再次被重定向到登录页面,该页面会再次被重定向等。每次重定向,它returnUrl一个returnUrl参数,指向导致重定向的URL。 对于每个重定向周期,该参数会变得越来越长,直到碰到限制并引发异常。

如果用户未被授权,用户被重定向到的页面应允许匿名访问,并且该页面上呈现的任何内容(子操作)也应允许匿名访问。 检查您的登录操作和相关视图,以查看可能导致问题的原因。

另外,请记住,使用MVC时,即使对返回JsonResult的操作的AJAX调用仍然会重定向到应用程序的标准登录页面,这显然在AJAX请求的上下文中没有用处。 为了解决这个问题,你应该使用Web Api或者不要依赖Authorize属性。

为了实现后者,您仍然必须包含Authorize属性以将用户数据填充到请求中,但是您还应该添加AllowAnonymous 。 然后,在动作本身中,您可以检查用户是否实际上是匿名的,并根据您的AJAX请求进行相应的响应。 它看起来像你正在尝试这样的事情,但没有AllowAnonymous代码从未被利用。

链接地址: http://www.djcxy.com/p/42029.html

上一篇: ASP.Net MVC: HTTP Error 414. The request URL is too long

下一篇: look like Query string parameter length issue in my MVC website