微信+angularJS的SPA應(yīng)用中用router進行頁面跳轉(zhuǎn),jssdk校驗失敗問題解決
今天偶然的把微信jssdk的debug打開后,發(fā)現(xiàn)調(diào)試信息總是提示簽名錯誤,感情前兩天api的"偶爾"不生效,不是因為還沒執(zhí)行代碼,而是因為簽名沒正確??!,這就是個100%可以重現(xiàn)的錯誤
但只要這個SPA剛刷新過,或加載完后中途沒有跳轉(zhuǎn),,簽名就會是正確的。
而當路由發(fā)生改變,我們對新"跳轉(zhuǎn)"的頁面重新簽名之后,卻出現(xiàn)了簽名錯誤,而我們的簽名明明是正確的,把各種參數(shù)拿去微信JS簽名校驗工具(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)去比對是一樣的!
后面重大發(fā)現(xiàn)。。。其實
只要加載SPA入口頁面的時候簽名一次就行了,因為微信拿來簽名的URL好像只認這個SPA第一個加載的頁面的URL。。。window.location.href跳轉(zhuǎn)其實就相當又加載了一次SPA
曾以為路由跳轉(zhuǎn)了,就應(yīng)該拿新的url去重新簽名,卻恰恰因為這點,把簽名校驗給搞出錯了。。
所以解決方案就是:
只簽名第一個加載的頁面就行了,用ui-router進行的跳轉(zhuǎn),似乎只是改了地址。。而這個地址的修改。。微信的簽名似乎不認。。他就認第一個加載的頁面的URL。
通過此文,希望能幫助到遇到此問題的朋友,謝謝大家對本站的支持!
相關(guān)文章
詳解什么是@ngrx/store開發(fā)包中的MemoizedSelector
這篇文章主要為大家介紹了@ngrx/store開發(fā)包中的MemoizedSelector使用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07AngularJS輔助庫browserTrigger用法示例
這篇文章主要介紹了AngularJS輔助庫browserTrigger用法,結(jié)合實例形式分析了輔助庫browserTrigger的功能及單元測試中的使用技巧,需要的朋友可以參考下2016-11-11對比分析AngularJS中的$http.post與jQuery.post的區(qū)別
這篇文章主要給大家對比分析AngularJS中的$http.post與jQuery.post的區(qū)別,十分的詳細,是篇非常不錯的文章,這里推薦給小伙伴們。2015-02-02Angular6實現(xiàn)拖拽功能指令drag實例詳解
這篇文章主要為大家介紹了Angular6實現(xiàn)拖拽功能指令drag實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11Angular4實現(xiàn)圖片上傳預覽路徑不安全的問題解決
這篇文章主要給大家介紹了關(guān)于Angular4實現(xiàn)圖片上傳預覽路徑不安全問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。2017-12-12Angular發(fā)布1.5正式版,專注于向Angular 2的過渡
Angular團隊最近發(fā)布了Angular 1.5的正式版,該版本實現(xiàn)了一次重大的升級,它讓仍在使用1.X版本的開發(fā)者將能夠更容易地過渡到Angular 2的開發(fā)2016-02-02angularjs 中$apply,$digest,$watch詳解
這篇文章主要介紹了angularjs 中$apply,$digest,$watch詳解的相關(guān)資料,需要的朋友可以參考下2016-10-10