微信公众平台开发——为何不能在网页调用微信jsapi?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众平台开发——为何不能在网页调用微信jsapi?相关的知识,希望对你有一定的参考价值。

说到这问题,相信大部分程序员老手都会轻蔑一笑,当然是跨域导致的啊!但是为了一些小白,我觉得还是很有必要再说一次的。

首先介绍什么是跨域,由于浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本( 主要是javascript)对不同域名的服务器接口进行跨站调用。一般,只要网站的 协议名protocol(HTTP、ftp等)、 主机host、 端口号port 这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域。

既然是说公众号开发的事,要想在前端调用jssdk,先要通过config接口注入权限验证配置。也就是先要获取wx.config 中参数的值。由于其中的参数值需要通过access_token和jsapi_ticket这两个参数来运算得到,而这两个参数需要请求微信接口才能获取,微信接口域名跟我们的网页明显不在同一域名下,所以造成跨域,从而导致我们无法在前端获取配置的参数。因此我们只能通过服务器用服务器端语言php pava c#等进行相关微信接口的请求。

另外,也有人非得用前端去请求,比如我,通过JSONP形式去请求数据,首先:JSONP这种非官方协议是需要后台配合写返回数据的,也就是返回回调函数,微信不可能做这个,数据不安全。

总而言之,言而总之,微信就是要让你在后台使用服务端语言请求接口!!也为了安全!

以上是关于微信公众平台开发——为何不能在网页调用微信jsapi?的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号开发纪要-调用微信扫一扫功能

微信网页第三方登录原理

为啥微信公众平台的“网页授权”接口获取access

通过PHP调用微信JSSDK实例

如何使用微信公众平台小程序

微信公众平台开发,模板消息,网页授权,微信JS-SDK,二维码生成