昨天一直很奇怪一个问题,微博的JS SDK的通过微博登录有一个WB2.login(), 根据文档应该是直接写上就可以弹出窗口的,第一次试验的时候也确实是这个样子的,但是当我把这个API调用放到一个自定义的方法里面的时候,问题来了,窗口弹不出来了,没有反应, 后来又试了他们的另一个解决方案,就是用WB2.anyWhere里面的W.widget.connectButton, 同样的问题,弹不出来窗口。
后来仔细读了一下那个文档说明,发现有一块讲的有些特别:
为了保证您的应用的安全,在您使用Weibo-JS时,需要您在应用信息页面为该应用选定绑定域名功能,并绑定您的域名,我们将以此域名来判定Weibo-JS API请求来源的合法性,不合法的请求将被拒绝。
绑定域名的操作可以在应用创建页面及编辑页面完成。选择“绑定域名”,填入域名提交即可。
原来是做了域名判断,但是我觉得至少要返回一个error吧,这个API什么都没有返回,而且还有一个就是,要不就一直弹不出窗口,把WB2.login()写在最外面,就是加载页面后立即执行的时候,又是可以弹出来的。
所以这个问题的解决办法就是创建好应用后,测试的时候改本地的host文件,启动一个web服务器,之后访问域名就所有功能都可以正常显示了,不可以直接打开html文件。