为什么我提交的网址如下:
localhost:38245/TeamWork/Group/1/LONG-COMMENT-POSTED-BY-USER
,
我收到一条错误,上面写着"错误请求 - 无效的网址HTTP错误400.请求网址无效。" ?
答案 0 :(得分:1)
IIS中的URL的默认最大长度为4096。您可能正在使用用户发布的评论来破坏它。通常,传输此类数据的最佳方法是通过POST而不是URL。您可以将注释修剪为更合适的大小,以增加IIS配置的requestLimits部分中的maxUrl值:http://msdn.microsoft.com/en-us/library/ms689462%28v=vs.90%29.aspx
答案 1 :(得分:1)
首先,HTTP 400错误适用于客户端发生错误的情况。正如您已经注意到自己一样,这是一个错误的请求错误。这意味着可能由于语法错误而无法执行请求。正如Mike Brind所提到的,你很可能超过了URL的最大长度(无论如何都是默认值)
其次,你为什么要提交"提交" URL的长篇文章?请改用POST方法。一种方法是使用Jquery的Post方法来完成此操作。见this。或者只是通过OnClick方法调用表单的提交方法,或者用户提交表单。
POST非常适合传输大量数据。所以从客户端提交数据,到目前为止最简单的方法是使用POST来实现这一目标。
答案 2 :(得分:0)
正如您在问题代码部分中所述,
localhost:38245/TeamWork/Group/1/LONG-COMMENT-POSTED-BY-USER
用户的长评论必须在您网站的web.config
文件中的限制范围内。
其次,没有Server会允许一个非常长的Url认为用户可能试图发布恶意软件。此外,使用短URL有利于数据传输,因为它们消耗的数据较少。
从请求的限制可以很容易地理解URL必须小于4096字节,只有4KB。所以你认为,所有的URL都是4KB?
由于Mike建议使用POST请求发送长数据,我还建议您使用HttpPost请求发送此类长数据。这样,浏览器将加密数据并将其作为请求的附件发送。