ajax请求不同页面的微信JSSDK的问题
来源:互联网 发布:linux安装源码包 cmake 编辑:程序博客网 时间:2024/06/05 10:29
问题场景:
我在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的问题
- 微信jssdk分享功能开发及解决ajax跨域的问题
- 微信jssdk分享功能开发及解决ajax跨域的问题
- 微信JSSDK的运用
- 微信jssdk的示例
- 关于使用微信JSSDK的配置问题
- 微信jssdk上传多图的问题
- 共享微信JSSDK的access_token.json
- 微信分享 JSSDK的使用
- 微信签名及jsSDK的使用
- ThinkPHP微信JSSDK的使用
- javascript jssdk退出微信的方法
- 使用微信JSSDK自定义微信分享标题、描述时需要注意的问题
- 微信JSSDK分享接口中wx.config 出现invalid signature问题的解决办法
- 微信JSSDK分享接口中wx.config 出现invalid signature问题的解决办法
- 微信jssdk分享接口问题汇总
- 微信jssdk开发域名问题
- 关于实现微信JSSDK的错误分析
- 动起来才有效果---接口测试进阶,认识复杂的验证逻辑
- Oil Deposits
- CodeForces 735 C.Tennis Championship(水~)
- BZOJ1111 [POI2007]四进制的天平Wag
- 100个python练手小程序
- ajax请求不同页面的微信JSSDK的问题
- URLs are treated as unique security origins.
- 认识.Net平台
- ubuntu下Nginx流媒体服务器搭建与测试 一
- C#的变迁史
- element组件学学习地址
- 直播推流实现RTMP协议的一些注意事项
- cmd 后台运行脚本-隐藏脚本
- 第K短路