我們正在使用DPS的PXPay爲我們的應用程序生成付款。角正在更改查詢字符串參數
在一個成功的交易提供的URL看起來像
這肯定是進入了瀏覽器的請求。但什麼是顯示在瀏覽器地址欄......,什麼角度,爲「結果」令牌讀取這是... ...
如果你仔細看......兩個「==」是從「結果」標記字符串的末尾取下。
我已經在非角度應用程序中測試過,並沒有發生。爲什麼角度做到這一點,我如何防止它?
我們正在使用DPS的PXPay爲我們的應用程序生成付款。角正在更改查詢字符串參數
在一個成功的交易提供的URL看起來像
這肯定是進入了瀏覽器的請求。但什麼是顯示在瀏覽器地址欄......,什麼角度,爲「結果」令牌讀取這是... ...
如果你仔細看......兩個「==」是從「結果」標記字符串的末尾取下。
我已經在非角度應用程序中測試過,並沒有發生。爲什麼角度做到這一點,我如何防止它?
Angular無法處理==
,因爲它的$location
的search
解析。只需訪問:https://angularjs.org/?foo==123和url將更改爲https://angularjs.org/?foo=
在無角頁面上也不會發生這種情況。解決方案
:後?result=
非常感謝您的回答。我現在已經猜到了這種情況。你能否指出我將如何在結果後對HTML部分進行編碼? – markstewie
根據你試圖用返回的URL做什麼要麼補丁角或HTML編碼的部分,它可能是簡單的只是設置window.location
,而不是直接通過角工作的。這繞過了剝離double等於的$location
中的查詢字符串解析。
我最終做的是在角度啓動之前將標記存儲在查詢字符串中作爲'document.resultToken'。然後我可以在角度控制器中訪問它。感覺很髒,但它的工作 – markstewie
工作比破碎好。當你準備好清理它時,請在AirPair上給我打氣。 –
可能是$ sce'https:// docs.angularjs.org/api/ng/service/$ sce' – dman
也可能會失去一些手動設置的$ location屬性。我之前使用過一個服務來保存實際的字符串,然後將$ location.path和$ location.url設置爲等於它。 – irth
問題在於「==」在獲得$ location服務之前正在被脫離url。它必須是幕後進行的某種消毒。試圖找出我在角度到達之前如何閱讀請求 – markstewie