91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

淺談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

万全县| 大连市| 五河县| 卓资县| 安宁市| 郯城县| 平湖市| 铁力市| 延边| 饶阳县| 黎平县| 驻马店市| 辛集市| 镇远县| 甘南县| 海南省| 苏尼特左旗| 陕西省| 龙门县| 清苑县| 张家港市| 屯门区| 凉城县| 襄樊市| 年辖:市辖区| 嘉黎县| 石棉县| 渝北区| 故城县| 石楼县| 额敏县| 合川市| 江陵县| 综艺| 大连市| 灵寿县| 班戈县| 招远市| 沂水县| 泸西县| 通辽市|