背景 : 網頁畫面上有個table ,table 上有很多行<tr>,每一行都有一個button,
點擊後會把該"行"所有的所有的內容當成參數包一包傳送一個ajax request給server
 
 
 
以前都執行好好的,最近突然發生一種奇怪的問題
在某一個客戶端的所有電腦(不論NB or PC )點擊這個button
收到的response會變成
error
This page can't be displayed due to a security violation. Contact support for additional information.
如下圖
 
但是使用其他地方的電腦測試,連接相同的網頁
執行相同的操作行為,又都很正常
 

 
後來發現是因為傳出去的參數包含了語法   
<input ='#' onclick="expFunc()">AAA</input>
這個語法不是知道知道被什麼東西擋住了,直接回傳上去那個莫名其妙的error
(重點是打開  開發者工具(F12)查看,發出去的request 收到的response status 是 200 正常執行)
 
應變的方法 是 把寫法改成搭配JQuery語法的方式
<input onclick="expFunc()"  id = "exp">
                         +
 
$("#exp").live( "click"function() {
     ...
});
 
就過關了...
 

 
但是當初到底是什麼東西把我發送的request擋回來真的不知道是什麼
而且也不知道為什麼要擋
事後回想也只有推測而已(都沒證實)
1. 2017年,3月底 4月初的時候   微軟作業系統有一次更新
     問題冒出來的時候大概也是那個時間點,所以在懷疑是不是那次更新所導致
 
2. 也有在猜測是不是客戶端那邊有什麼防火牆 or 網路安全性層級改變所導致
 
3. 是不是 expFunc() 這種呼叫函式的語法被當成參數傳遞的時候,會被掃出來當成惡意的指令而被阻擋

arrow
arrow
    全站熱搜

    sonyvsshadow 發表在 痞客邦 留言(0) 人氣()