我有一個頁面,我正在使用jQuery ajax方法來調用一個簡單的Web服務,它將從數據庫獲取一些數據並將其綁定到頁面中的一些控件。 ajax方法在onchange事件中選擇(這裏的HTTP請求是POST)。以下是jQuery的AJAX方法處理jQuery提出的錯誤Ajax方法
function CallAjax(url, jsonData, SucessFunction, FailurFunction) {
$.ajax({
type: "POST",
url: url,
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: SucessFunction,
error: function(){
alert('error occured');
}
});
}
用於上述方法的URL是SomePage.aspx頁面/ getDataFromDatabse其中getDataFromDatabse是web服務的方法。我們的測試人員正在使用burp套件測試頁面。當他們直接綁定訪問瀏覽器中的url(www.example.com/somepage.aspx/getDataFromDatabse)時,burp套件中顯示的HTTP方法爲GET,並且會引發錯誤,並且用戶將被重定向到適當的頁面。但是,當它們被直接訪問上述URL和攔截在打嗝套件請求和改變GET請求到POST請求被直接顯示在瀏覽器下面的錯誤消息:
{「消息」:「發生錯誤處理請求「」堆棧跟蹤。「:」」,‘ExceptionType’:‘’}
的‘是沒有得到執行在上述AJAX功能誤差’,並且未示出的警告框,我們能夠來處理錯誤。如何處理這樣的錯誤並將用戶重定向到自定義頁面?
ajax方法只能在'select'(dropdownlist)html控件的'onchange' js事件上調用。但是當服務方法(www.example.com/somepage.aspx/getDataFromDatabse)的url直接在瀏覽器中輸入並訪問並且GET類型通過burp套件更改爲POST時,它會返回一個有效的JSON結果說,但沒有jquery ajax方法被調用來處理這個JSON結果,並且JSON結果直接由瀏覽器以純文本顯示。如何處理這個? – seadrag0n
@ghouse - 如果我正確理解你,當你在URL中輸入瀏覽器(並將方法改爲POST)時,jquery'$ .ajax(...)'永遠不會被調用,所以它不會被調用聽取回應。也許我完全不瞭解你的問題? – Chris
你是正確的,因爲jquery'$ .ajax(...)'只在'onchange'上被調用,當瀏覽器直接訪問'URL'時不會被調用,並且由於GET被改爲POST,直接在瀏覽器中以JSON格式顯示上述消息。 – seadrag0n