最近在做項目中出現了一個這麼的問題,就是前臺像後臺傳過去的參數有一個是html格式的,結果就出現了從客戶端中檢測到有潛在危險的 Request.Form 值這個問題了,百度了下,解決方案無非就是2種:
由於在.net中,Request時出現有HTML或Javascript等字符串時,系統會認爲是危險性值。立馬報出“從客戶端 中檢測到有潛在危險的Request.Form值”這樣的錯。
解決方案一: 在.aspx文件頭中加入這句: <%@ Page validateRequest="false" %> eg:<%@ Page Language="C#" AutoEventWireup="false" ValidateRequest="false" CodeFile="你的頁面.vb" Inherits="你的頁面" %>
解決方案二: 修改web.config文件: <configuration> <system.web> <pages validateRequest="false" /> </system.web> </configuration> 因爲validateRequest默認值爲true。只要設爲false即可。 |
上面2種方案我都測試了,應該沒有適合我的項目,結果都不行,於是我想到了編碼,於是在js裏面就html字符串進行了編碼
var test= encodeURI("<p>測試</p>");
那麼再傳過去就沒有這個問題了,那麼只需要後臺進行解碼就行了
string s= Server.UrlDecode(’要解碼的參數‘);
最好得到的s也就是<p>測試</p>了