1

我有显示为 html 的文本,并使用 htmlencode 过滤了内容。

当我将控件更改为文本框时,我只留下了 htmlencode 代码,它大部分都可以工作。但是,当有国际字符时,例如 éúáó,页面上的 ajax 调用停止工作。该页面实际上正确显示并且没有错误 - javascript或其他错误,但该页面实际上停止工作。

我删除了 htmlencode,现在一切正常。该应用程序被定义为 utf-8。

我只是好奇是否有人明白发生了什么。

4

1 回答 1

1

我的猜测是您的 Ajax 调用使用 HTTP GET 方法,并且您使用的是 HTML 编码而不是 URL 编码。因此,当您的 Ajax 调用构建的 URL 包含重音字符时,它们可能包含诸如´(HTML 编码é)之类的字符,并且这些字符破坏了您的 URL 方案,导致请求永远不会到达您的服务器端控制器。的 URL 编码é实际上是%E9. URL 编码和 HTML 编码是不同的。

当您删除 HtmlEncode 调用时,我想它解决了您&破坏 URL 方案的问题。如果到目前为止我是正确的,那么将 Ajax 调用更改为使用 HTTP POST 而不是 HTTP GET 可能是一个好主意,以确保消除任何其他 URL 问题。

于 2012-06-05T14:48:17.070 回答