亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談ajax請求不同頁面的微信JSSDK問題

發布時間:2020-09-12 05:35:12 來源:腳本之家 閱讀:239 作者:heartOfblack 欄目:web開發

問題場景:

我在A頁面有一個表單內容需要使用藍牙打印機打印,填完表單信息,并通過ajax請求發送到 B文件(PHP)中處理信息,正常通過form表單跳轉到B頁面后,是可以打印出來的,因為B頁面中除了處理 數據的PHP之外還混合了 JS代碼,也就是JSSDK部分。然而通過ajax請求發送過去,則無響應,所有jssdk除了wx.ready和wx.config之外都無法執行。(A.B兩個文件都有wx.config,wx.ready配置)

比如發送數據的參數:

wx.invoke('sendDataToWXDevice',data,function(res){
  //微信提供的接口,只有這么一個回調函數,如果通過ajax請求,則無法進入回調函數
 if(res.err_msg=='sendDataToWXDevice:ok')
 {
  alert("打印成功");
  window.history.go(-1);
 }
 else
 {
  alert("打印失敗");
 } 
 });

于是我就猜測,通過請求PHP文件,返回的數據包含了我的B頁面JS代碼部分,也就是說,A頁面有wx.config和wx.ready,B頁面返回的內容也有這兩個接口,為了排除這個問題,

我把B頁面的所有微信接口全部去掉了。只剩下處理完表單需要發送的內容保存在一個input中。

//返回 處理后的數據
echo '<input type = "hidden" name = "print_str" id = "print_str" value="'.$hex_str.'"/ >';
echo '<input type = "hidden" name = "device_id" id = "device_id" value="'.$device_ID.'"/ >';
?>

由原本跳轉頁面打印改成異步請求打印,實際上,從微信發送數據給設備還是在A頁面執行,B文件只是負責返回由A傳給B并通過加密處理的數據,所以,刪掉B文件中所有混寫的html和JS代碼,其中要注意的是config配置中是否包含 beta:true屬性,因為涉及到硬件SDK需要,并且接口列表參數中是否也填寫上了要用到的硬件SDK接口

我當時覺得我的想法是正確的。但是我每次在wx.invoke包括openWXDeviceLib,sendDataToWXDevice等的 回調函數中用document.write寫下返回的結果,但是我很快發現每次wx.invoke后面的輸出都不執行了,而且我原本頁面的內容也被清空了,此時我還沒意識到這個問題,還是不斷測試,直到我在invoke之前輸出了由B頁面返回的數據(以上document.write內容都是我在請求成功后的success回調函數輸出的),我才意識到,我要發送的數據,在我執行invoke方法的時候,已經變成了undefind,我才恍然發現,我的頁面原本內容被清空了(因為之前是跳轉到B頁面打印,所以本身就是一片空白,~ ~,習慣了,沒發現變化),后來我改用alert輸出,就可以正常打印了,也就是說 JQUERY的ajax封裝的回調函數中,用document.write輸出,會重置頁面內容(我之所以用document.write來輸出的原因是,之前測試某個階段中,原本作為調試的config是通過alert窗口彈出信息的,但是不知道為何他卻以document.write的形式寫在了頁面上。我現在已經忘了當時是什么情況,所以才會導致這個錯誤,不過也算是知道了JQ的這個問題)

謹記:JQuery的ajax的success回調函數中用document.write輸出內容會重置頁面內容,至于其他回調函數會不會有興趣可以自己看一下。

以上這篇淺談ajax請求不同頁面的微信JSSDK問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

水富县| 青河县| 邵阳县| 修文县| 洛南县| 顺义区| 塘沽区| 台北县| 民县| 邢台县| 阳春市| 长海县| 保定市| 宁津县| 三江| 开化县| 当阳市| 彝良县| 大连市| 多伦县| 姜堰市| 兴山县| 安阳县| 花垣县| 安溪县| 哈尔滨市| 信丰县| 建宁县| 岱山县| 积石山| 高唐县| 黄浦区| 报价| 新化县| 闻喜县| 高台县| 江山市| 商南县| 广平县| 铅山县| 临夏市|