2013-01-22 75 views
2

因此,我試圖提交一個字符串作爲參數在Js中發佈到asp.net服務,而我有一些困難。在聲明之前,我無法訪問服務器,也無法觸及驗證,我嚴格從外部客戶端訪問。我得到這個響應返回從客戶端檢測到有潛在危險的Request.Form值,請編碼幫助

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (message="...t;img src='http://192.168.1..."). 
    at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) 
    at System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) 
    at System.Web.HttpRequest.get_Form() 
    at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request) 
    at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() 
    at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest() 

我發送的信息是:

xcvxzcvzxcvxcvzxcv< br /><img src='http://192.168.1.1:82/UserUploads/Images/65968/20130122020024996.jpg' alt='User Image' /> 

其中我用編碼:

htmlEncode: function(str) { 
     str = str.replace(/&/g, '&amp;'); 
     str = str.replace(/'/g, '&#39;'); 
     str = str.replace(/"/g, "&quot;"); 
     str = str.replace(/</g, '&lt;'); 
     str = str.replace(/>/g, '&gt;'); 
     return str; 
    }, 

主要生產:

xcvxzcvzxcvxcvzxcv&lt; br /&gt;&lt;img src=&#39;http://192.168.1.1:82/UserUploads/Images/65968/20130122020802027.jpg&#39; alt=&#39;User Image&#39; /&gt; 

我已經通過了幾個驗證器並檢查了我的en編碼,我無法弄清楚是什麼導致了這個問題。我唯一的猜測是,http://導致問題,因爲它顯示在JavaScript錯誤,但我不知道。任何幫助或見解將不勝感激。

+0

可以顯示實際執行POST的代碼嗎? – PleaseStand

+1

這是'實體。看起來像任何&#..;編碼在asp.net中被標記爲危險。 – Ceres

+0

賓果,就是這樣,換出'轉換',它完美的作品 – knightsbore

回答

0

問題是編碼'。根據用戶409762,在asp.net中,&#的組合被標記爲危險。

所以,現在我的編碼看起來像這樣,工作正常。

htmlEncode: function(str) { 
    str = str.replace(/&/g, '&amp;'); 
    str = str.replace(/"/g, "&quot;"); 
    str = str.replace(/</g, '&lt;'); 
    str = str.replace(/>/g, '&gt;'); 
    return str; 
}, 
0

使用jquery,你可以執行編碼和解碼like this link

function htmlEncode(value) { 
    return $('<div/>').text(value).html(); 
} 

function htmlDecode(value) { 
    return $('<div/>').html(value).text(); 
} 
相關問題