背景 : 網頁畫面上有個table ,table 上有很多行<tr>,每一行都有一個button,
點擊後會把該"行"所有的所有的內容當成參數包一包傳送一個ajax request給server
![](https://pic.pimg.tw/sonyvsshadow/1494043615-1739364253.png)
以前都執行好好的,最近突然發生一種奇怪的問題
在某一個客戶端的所有電腦(不論NB or PC )點擊這個button
收到的response會變成
error
This page can't be displayed due to a security violation. Contact support for additional information.
如下圖
![](https://pic.pimg.tw/sonyvsshadow/1494043632-2458027903.png)
但是使用其他地方的電腦測試,連接相同的網頁
執行相同的操作行為,又都很正常
後來發現是因為傳出去的參數包含了語法
<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() 這種呼叫函式的語法被當成參數傳遞的時候,會被掃出來當成惡意的指令而被阻擋
全站熱搜