form表單提交被攔截


最近做的一個項目,利用form表單(可以避免跨域問題)提交,在chrome可以正常進行跳轉,但是在手機端,以及一些pc端瀏覽器卻無法正常跳轉。通過檢查后台日志,沒有正常跳轉的都是因為后天直接沒有收到該請求,此時就一個疑惑: WHY?

查找問題

由於在chrome下是可以進行的,潛意識地便認為自己的代碼沒有,有問題的是瀏覽器(或者經過特殊處理的,微微一笑)。結果還正在網上找到一個可以佐證自己的思路的問題link,此文說了一個問題,若是自動觸發表單的submit()方法時,會被瀏覽器記錄為是廣告,從而被攔截了(這瀏覽器都被整怕了呀)

因而在尋找如何解決廣告這條道路上漸行漸遠。但是這個問題卻不得不解決,嚴重影響公司業務,更多地便關心到自己的錢袋啊。

在跟產品溝通過程中,說是參數問題。遵循着輕松時刻來解決試試的心態。寫了一個demo進行嘗試。一切ok,以為會出現的問題,居然絲毫沒有浮出水面的跡象。

拿着demo和線上代碼對比

demo

$('form').submit()

線上

$('form').submit()
location.reload()

在鎖定代碼差異化后,果斷去掉location.reload(),之前的問題瞬間煙消雲散,撥開烏雲見晴空。內心真是......
自作聰明啊,話說為何chrome卻沒有出現這個問題呢。有點不太理解,這代碼應該是同步的,各行其事,應該不至於才是。此時只能理解為,在form提交時,此時瀏覽器還在執行時的實例被location.reload重置了,導致之前的請求直接被攔截了(雖然有些扯)

希望有大神能指點一二

暫且記上這一個坑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM