POST encodeURI查询字符串内部服务器错误 500

POST encodeURIComponent query string Internal Server ERROR 500

本文关键字:服务器 错误 内部 字符串 encodeURI 查询 POST      更新时间:2023-09-26

更新: 2015-03-18 部分解决 请参阅下面的评论

通过纯 JAVASCRIPT (AJAX) 请求将 HTML 发布到服务器,不使用 AJAX 库。

有人可以告诉我为什么会失败吗? 即使它是编码的?

xmlhttpObj.open("POST", "apage.aspx?name1=value1&name2=%3Cd", true);

内部服务器错误 500 - 无法加载资源

WIN 7, IIS7, Chrome, 纯 JavaScript [请不要使用 JQuery 或其他]这是一个javascript xmlhttpRequest open/POST/send();异步(或同步,两者都失败)在web.config和页面指令中对httpRuntimeValidationMode = 2.0和pages requestValidate = false进行了更改,所有FRAMEWORK都一直安装到4.0

唯一编码的部分是第二个名称/值对 (name2=%3Cd) 的 VALUE(%3Cd) - ...对 URL 部分进行编码更糟糕...

特殊字符 (%3C) 是

如果该值中没有特殊字符,它将传递(编码或不编码)2061 个字符(即使 IIS 设置为 4096 并且这些更改反映在 web.config 中)单独一个尖括号(<),通过!?因此需要 2 个字符(%3Cd) 来打破它。

如果此行插入 Broswer URL 栏中:(注意,缺少 C)http://localhost/sitename/apage.aspx?name1=value1&name2=%3d有效地跳过javascript httpRequest,ResponseText是:"value1="因此,第一个值成功,第二个值也是如此,因为 3D 是"="符号(讨厌的巧合-哈哈,让我循环了一圈)。

%3Cd - 当 C 未被删除时..."[小于]d"等于麻烦(呃!黄色跟踪屏幕:从客户端检测到具有潜在危险的 Request.QueryString 值 (name2=[lessthan]d)。- 跟踪页面上未提及错误 500。

为什么不取消验证机制?!...我以为只需要编码?!...为什么它会在 2061 年窒息?

请记住,在无数情况下使用相同的机制而不会打嗝,同步和异步......只要不传递"危险"字符就没有问题。上面的 '='(3d) 示例和 2061 SUCCESS 表明此实例没有什么不同。

我不会随意发布...我会在乞求帮助前 40 小时打破我的头,我已经阅读了整个互联网......(嗅闻)!(泰)

...不确定这是正确的或可接受的方法来执行此操作,但是通过用我可以随意解码的"唯一 3 个字符安全字符串"替换"<"暂时解决了这个问题......我相信我将不得不为其他将失败的过程的字符这样做。

我更喜欢一个可靠的接受解决方案。...以及其他相关问题(如查询字符串长度)也没有解决T.Y.