// 引用百度地图微信小程序JSAPI模块
var bmap = require('/libs/bmap-wx.min.js');
Page({
data: {
ak: "ZgnvjtASqR2m5YVdtVYAEmAYnKgDWywV",
weatherData: '',
futureWeather: []
},
onLoad: function (options) {
var that = this;
// 新建bmap对象
var BMap = new bmap.BMapWX({
ak: that.data.ak
});
var fail = function (data) {
console.log(data);
};
var success = function (data) {
console.log(data);
var weatherData = data.currentWeather[0];
var futureWeather = data.originalData.results[0].weather_data;
console.log(futureWeather);
weatherData = '城市:' + weatherData.currentCity + '\n' + '日期:' + weatherData.date + '\n' + '温度:' + weatherData.temperature + '\n' + '天气:' + weatherData.weatherDesc + '\n' + '风力:' + weatherData.wind + '\n';
that.setData({
weatherData: weatherData,
futureWeather: futureWeather
});
}
// 发起weather请求
BMap.weather({
fail: fail,
success: success
});
}
})
情况1:未设置合法域名
解决方法:请在微信公众平台登录小程序后台设置。
情况2:设置了合法域名,开发工具仍然报错
解决方法:手机微信下拉找到最近使用的小程序,长按之后拖到底部删除,然后重新尝试真机调试和体验版。
情况4:设置了合法域名,到哪都报错,清缓存也没用!
解决方法:请确认访问该域名时,是否会出现重定向,将重定向域名添加进合法域名
情况5:设置了合法域名(含重定向),到哪都报错,清缓存也没用!
解决方法:请确认访问该域名是否是三级域名,请设置为一级或二级域名
情况6:以上所有解决方案都不行!
解决方法:请在微信小程序平台反馈bug
没有配置 DNS 安全域名请求引起的,请登录 「小程序后台 - 开发 - 开发设置 - 服务器域名」
中进行配置,配置时需要注意:
配置流程 https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html
请求的域名需要按下图的要求进行配置,但是baidu的域名不是你的,所以你需要自己用后端中转下,你这样不中转也有安全隐患,别人会盗用你的key
数据流应该是
小程序=>你自己的域名后端=>baidu地图的接口
参考GPT和自己的思路,根据错误信息,您需要在小程序开发者工具中设置请求域名白名单,将“https://api.map.baidu.xn--com-9o0a802z05e8el8av6gpb708e0m7ddedhs2k./
请按照以下步骤操作:
1.打开小程序开发者工具,进入开发者工具的“详情”页面。
2.点击左侧菜单栏中的“本地设置”。
3.在“请求域名”一栏中添加“https://api.map.baidu.xn--com-9o0a./
4.保存设置,重新编译并运行小程序。
此时应该可以正常请求到百度地图的API了。如果还有其他问题,请随时向我提问。