發(fā)現(xiàn)問題
這是來自一位網(wǎng)友的提問:
?
本著求真務(wù)實(shí)的態(tài)度,我打開了 AppBoxPro 項目,本地調(diào)試果然發(fā)現(xiàn) Page_Load 進(jìn)入了兩次!
其實(shí)在沒測試之前,我就有了大概的方向,因為AppBoxPro是需要先登錄的,莫非因為權(quán)限問題被重定向了一次,但是F12打開調(diào)試窗口,發(fā)現(xiàn)請求的的確確只有一個:
?
分析問題
之前好像也遇到過類似的問題,貌似是圖片標(biāo)簽設(shè)了空的src屬性導(dǎo)致的(?<img src="">),網(wǎng)上查了一下,的確有很多人遇到這個問題。
比如這個帖子:https://www.cnblogs.com/Simcoder/archive/2011/12/01/2270256.html
<https://www.cnblogs.com/Simcoder/archive/2011/12/01/2270256.html>
但是我在頁面上檢查了一遍,雖然有 img 標(biāo)簽,但是其 src 屬性都不為空!
?
沒辦法,還是調(diào)試看看參數(shù)吧,畢竟兩次進(jìn)入 Page_Load 總該有所不同吧,來看下請求的URL:
?
?
?
?
果然發(fā)現(xiàn)問題,解碼后第二次的請求URL是:http://localhost:7086/default.aspx?ReturnUrl=/
__browserLink/requestData/e176fc91b6574240afa3a4f0f95e9ebd?version=2&version=2
?
看到其中的 __browserLink 我好像突然明白了,這個不就是 Visual Studio 提供的一個工具嘛,好像是 VS2013
之后才引入的,可以讓用戶在VS中點(diǎn)擊刷新按鈕直接刷新相應(yīng)的瀏覽器窗口,不過我對這玩意不感冒,從來不用過罷了。
?
打開頁面源代碼,就能看到這個請求來自何處了:
?
解決問題
知道問題的根源,解決起來就很簡單了,這里有兩個方法。
第一種方法簡單粗暴,直接禁用VS Browser Link,反正我也沒用過:
?
第二種方法是給 VS?Browser Link 放行,這個根本不需要進(jìn)行身份認(rèn)證,和網(wǎng)站的靜態(tài)資源做同樣的處理,修改Web.config文件:
<location path="icon"> <system.web> <authorization> <allow users="*" /> </
authorization> </system.web> </location> <location path="res"> <system.web> <
authorization> <allow users="*" /> </authorization> </system.web> </location> <
locationpath="res.axd"> <system.web> <authorization> <allow users="*" /> </
authorization> </system.web> </location> <location path="__browserLink"> <
system.web> <authorization> <allow users="*" /> </authorization> </system.web>
</location>
?
注意,上面的 __browserLink 配置項就是我們新增的!
?
搞定!
?
?
等等
好像有點(diǎn)問題,既然是一個被攔截的
URL:http://localhost:7086/default.aspx?ReturnUrl=/__browserLink/requestData/e176fc91b6574240afa3a4f0f95e9ebd?version=2&version=2
為啥前面的 F12 看不到這個請求,這個不合理吧!
的確如此,既然是一個HTTP請求,就不可能逃出 F12 的監(jiān)控,我們再次運(yùn)行頁面,發(fā)現(xiàn)這個請求卻原來是一個 AJAX 請求:
?
前面我們使用 Doc 過濾項,自然是看不到這個 AJAX 請求了。
?
至此,問題完美解決。
?
?
不忘初心,砥礪前行!
?
熱門工具 換一換