应用程序开发公司
软件开发

针对您的项目需求及预算规划量身制定方案

个体/中小企业/集团/政府机构/行业组织 了解详情 了解详情

微信小程序中如何处理跨域请求?

发布时间:2024-01-01 00:00 浏览次数:113

在微信小程序中,由于安全管制,命令非当前域下的数据时会发生跨域命令的问题。化解这个问题就是很关键的,因为很多应用领域须要联手数据去顺利完成任务,并且在微信小程序中同时实现项目时须要采用至许多的API。


本文将从以下几个方面去了解微信小程序中如何处置跨域命令:


1. 什么就是跨域命令?


2. 微信小程序中USB跨域的管制


3. 微信小程序中跨域命令的解决方案


4. 移动应用领域中的跨域问题


5. 跨域命令的安全性问题


1. 什么就是跨域命令?


跨域命令就是指须要在相同的域、协议和端口下命令资源的过程。比如,在 A 域名下发动的命令必须回去出访 B 域名下的资源。由于跨域命令存有安全风险,因此浏览器在预设情况下就是严禁展开跨域命令的。


2. 微信小程序中USB跨域的管制


在微信小程序中,当我们采用wx.request()USB命令数据时,系统可以自动采用小程序域名做为命令的源。由于微信小程序预设打开了严苛模式,管制了所有的第三方URL命令,否则可以发生HTTP Status Code 401错误。


以微信公众号10000的USB为基准,我们可以辨认出在小程序控制台下,该USB发生了相似以下提示信息:


[微信号] oauth USB被婉拒出访,因为暂时无法检验公众号身份,恳请稍后再试。


3. 微信小程序中跨域命令的解决方案


为了化解微信小程序中的跨域命令问题,我们可以使用以下方法:


方法一:采用wx.request()中的header属性


我们可以在采用wx.request()时,对该命令展开布局。此时可以利用其header属性去对跨域命令展开处置。我们可以采用header属性向服务器传递信息,说服务器当前命令的源就是一个源自小程序的命令,如下右图:


```


wx.request({


url: 'https://example.com',


header: {


'content-type': 'application / json',


'Authorization': 'Bearer' + wx.getStorageSync('token')


},


success: function (res) {


console.log(res.data)


},


fail: function (res) {


console.log('命令失利')


}


})


```


方法二:采用小程序后台的安全域名


微信小程序后台积极支持布局安全域名,我们可以在小程序后台-研发-研发设置中展开布局。通过布局安全域名,小程序可以安全地出访外部的USB。


当小程序出访布局了安全域名的外部USB时,系统可以根据该域名的TLS证书展开检验,保证该USB就是安全且可以被信任的。


比如,我们可以在小程序设置中设置百度云开放平台为安全域名,如下右图:


在小程序中采用如下代码展开调用:


```


wx.request({


url: 'https://example.com',


success: function (res) {


console.log(res.data)


},


fail: function (res) {


console.log('命令失利')


}


})


```


方法三:采用代理服务器


当以上两种方法都无法化解跨域命令的问题时,我们可以采用代理服务器去替代小程序向被命令的资源发出请求。代理服务器可以将小程序中的命令发送到目标URL资源,并赢得该资源的积极响应结果,再将结果回到至小程序中。这种方式可以在服务端展开跨域命令处置,从而防止微信小程序中的跨域命令管制。


4. 移动应用领域中的跨域问题


当相同域下的移动应用领域命令资源时,也可以牵涉至跨域问题。无论是采用Android应用领域程序开发还是iOS应用领域程序开发,我们都会碰到横跨问题。


在Android应用程序中,我们可以通过Cross Domain Solutions/JsonP等方式去化解命令相同域的资源问题。JsonP坚信大家都比较熟识,这里不再可知。


而在iOS应用程序中,我们可以通过采用桥接去化解命令相同域的资源问题。桥接将OC的NSURLConnection和JavaScript的XMLHttpRequest融合出来顺利完成命令相同域的资源。


5. 跨域命令的安全性问题


跨域命令在保证资源安全性方面存有非常大的问题。假设某一网站存有漏洞,那么当被蓄意攻击者借由该网站发动跨域命令时,其蓄意脚本可能会被转化成至接收端的命令中,从而引致接收端频频异常,甚至遭遇数据泄漏或版权侵害等风险。


因此,我们须要在跨域命令时展开有效率的安全检查和掌控,比如说在微信小程序传送命令时采用token展开证书,只容许许可用户展开出访。同时不所推荐将敏感数据放到浏览器端的,特别是在跨域的时候,以免数据泄漏。


总结


通过以上了解,我们已经了解到微信小程序中如何处置跨域命令的问题。因为微信小程序的安全机制,我们须要使用一些方法去展开跨域命令的处置,包含采用header属性、布局安全域名和采用代理服务器等方法。同时,我们也须要展开一些安全性方面的处置,以保证跨域命令的安全。对于移动应用程序的跨域命令问题,我们也可以使用跟微信小程序相似的处理方式去同时实现。

TAG标签:
阅读推荐