-微信小程序跨域问题解决方案
微信小程序跨域问题解决方案
跨域访问是指从一个域名的网页去访问另一个域名的网页,比如从a.com的网页去访问b.com的网页。这样的跨域访问是不允许的,因为a.com的网页是不能访问b.com的数据库的。
但是微信小程序是可以跨域访问的,这是因为微信小程序跨域的解决方案是通过jsonp来实现的。
JSONP(JSON with Padding)是一种跨域数据获取方式。
通常我们获取数据都是通过Ajax,Ajax是一种在浏览器客户端和服务器之间通过使用XMLHttpRequest对象来传输数据的方法。
跨域访问的数据格式为JSONP,它是JSON的一种“拓展”,只需要在服务器端返回数据的格式是:
callback({"name":"zhangsan"})
callback是一个函数名,可以任意取,一般取jQuery的ajax方法中的jsonpcallback。
在客户端发起请求时,只需要把callback参数传入,就可以实现跨域了。
微信小程序中,可以通过wx.request来发起http请求,请求的格式为:
wx.request({ url: ' http://example.com/request ', data: { }, header: {}, method: 'GET/POST', dataType: 'json', success: function(res) { console.log(res.data) }, fail: function(res) { }, complete: function(res) { }, })
需要注意的是,需要在微信公众平台中配置请求域名。
打开微信公众平台->开发-》基本配置->服务器域名,添加request合法域名。
如果需要实现跨域请求,需要在服务器端进行配置。
在微信小程序中,可以通过wx.request发起http请求,实现跨域访问。
首先,在微信公众平台中配置请求域名:
打开微信公众平台->开发-》基本配置->服务器域名,添加request合法域名。
其次,在微信小程序中发起http请求:
wx.request({ url: ' http://example.com/request ', data: { }, header: {}, method: 'GET/POST', dataType: 'json', success: function(res) { console.log(res.data) }, fail: function(res) { }, complete: function(res) { }, })
最后,在服务器端进行配置,返回数据格式为:
callback({"name":"zhangsan"})
callback是一个函数名,可以任意取,一般取jQuery的ajax方法中的jsonpcallback。
微信小程序跨域访问的原理就是通过jsonp来实现的。
需要注意的是,需要在微信公众平台中配置请求域名。
打开微信公众平台->开发-》基本配置->服务器域名,添加request合法域名。
如果需要实现跨域请求,需要在服务器端进行配置。
在微信小程序中,可以通过wx.request发起http请求,实现跨域访问。
*请认真填写需求信息,我们会在24小时内与您取得联系。