JS用变量传递参数的问题

robotsz 2015-01-14 03:40:55
微信新提供了JS接口,在调用时遇到问题。
下面的是配置接口,需要填入timestamp nonceStr signature

wx.config({
debug: true,
appId: "APPID",
timestamp: a1,
nonceStr: a2,
signature: a3,
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'checkJsApi'
]
});


如果直接给a1 a2 a3赋值,可以正确执行,比如

var a1 = 1421212222
var a2 = "abcdefg"
var a3 = "3ifjsdlfjdslfjdsljkfsdjfjsdkf"


但是,如果通过AJAX从一个php页面获取字段,并拆分到变量之后,执行就会出错
比如:

var ajaxStr = ..............;//通过AJAX获取到的字符串,用#来划分字段
var arr = ajaxStr.split("#");
a1 = arr[0];
a2 = arr[1];
a3 = arr[2];


输出a1 a2 a3发现拆分后的值都是正确的,但是执行就是出错,是不是数据类型的问题呢?
使用了Number(a1) String(a2) String(a3) 进行了数据转换,但还是不行。

哪位能指点一下,直接赋值,和通过字符串拆分得到的值,这两者有什么不同吗?
...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
robotsz 2015-01-14
  • 打赏
  • 举报
回复
果然是最后有个\n的问题
天际的海浪 2015-01-14
  • 打赏
  • 举报
回复
看看php输出的内容后面是不是有空格或换行符之类的 alert("*"+a3+"*")这样看看;
robotsz 2015-01-14
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
通过AJAX获取字段是异步执行的。异步执行是延时的,只有AJAX的回调函数被调用之后a1 a2 a3才有值。 所以wx.config({.........});要放到AJAX的回调函数中。
是在回调函数里调用的,又加了测试代码,发现a1 a2都是正确的,但是a3不正确,获取到的a3和直接赋值的不同 比如在php里直接写

echo "1111#aa#bbbb";
在JS里,获取到a1=1111,a2=aa没问题 a3输出也会显示为bbbb,但是如果赋值一个b3 = “bbbb” 然后判断 a3 == b3,会输出false
天际的海浪 2015-01-14
  • 打赏
  • 举报
回复
通过AJAX获取字段是异步执行的。异步执行是延时的,只有AJAX的回调函数被调用之后a1 a2 a3才有值。 所以wx.config({.........});要放到AJAX的回调函数中。
slwsss 2015-01-14
  • 打赏
  • 举报
回复
ajax换成同步的或者ajax后再调用下wx.config(

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧