1

htmlとして表示しているテキストがあり、htmlencodeでコンテンツをフィルタリングしました。

コントロールをテキストボックスに変更したとき、htmlencodeコードをそのままにして、ほとんど機能しました。ただし、éúáóなどの国際的な文字が存在する場合、ページ上のajax呼び出しは機能しなくなりました。ページは実際に正しく表示され、エラー(javascriptなど)はありませんでしたが、ページは事実上機能しなくなりました。

htmlencodeを削除したところ、すべてが正しく機能するようになりました。アプリはutf-8として定義されています。

誰かが何が起こったのか理解しているかどうか私はただ興味があります。

4

1 に答える 1

1

私の推測では、あなたの Ajax 呼び出しは HTTP GET メソッドを使用しており、URL エンコーディングではなく HTML エンコーディングを使用していたようです。したがって、Ajax 呼び出しから構築された URL に´(の HTML エンコーディングé) などの文字が含まれていて、アクセント記号付きの文字が含まれていた可能性があります。これらは URL スキームを壊し、リクエストがサーバー側のコントローラーに到達しませんでした。の URL エンコーディングéは、実際には%E9. URL エンコーディングと HTML エンコーディングは異なります。

HtmlEncode 呼び出しを削除すると&、URL スキームが壊れるという問題が修正されたと思います。これまでのところ私が正しければ、HTTP GET の代わりに HTTP POST を使用するように Ajax 呼び出しを変更して、他の URL の問題を確実に排除することをお勧めします。

于 2012-06-05T14:48:17.070 に答える