百度地图App referer白名单报错,如何解决?

我注册了百度地图的开发者,referer白名单没有做限制,可是依旧显示APP Referer校验失败,为啥呀

img

img

img

看报错好像是前端跨域报错呀 搜一搜关闭谷歌安全跨域

前端跨域问题,不过original为null就很奇怪,试试在请求头里面主动配置一下original项试试

代码中设置的referer参数与应用所设置的referer白名单不匹配
或者是使用的API类型与当前AK所授权的API类型不匹配。检查一下所使用的API类型是否与当前AK授权的API类型一致吧

Access to Xmlhttprequest at "https://miao.baidu.com/abdr?……" from origin "null " has been blocked by CORS policy : The value of the "Access-control-allow-origin" header in the response must not be the wildcard "*" when the requests credentials mode is "include" . The credentials mode of requests initiated by the Xmlhttprequest is controlled by the withcredentials attribute
Failed to load resource : net : :ERR_FAILED
报错含义:
访问位于“”的Xmlhttpreques t"https://miao.baidu.com/abdr?……"“from origin”null“已被CORS策略阻止:当请求凭据模式为”include“时,响应中的”Access control allow origin“标头的值不得为通配符”*“。Xmlhttprequest启动的请求的凭据模式由withcredentials属性控制
未能加载资源:net::ERR_Failed

解题思路:
1、检查 "Access-Control-Allow-Origin" 头的值,而不是 通配符"*"。确保它与你的应用程序中的值匹配。
2、尝试禁用 CORS 策略,并让网站自动生成默认的 "Access-Control-Allow-Origin" 值
  • 建议你看下这篇博客👉 :安全规范代码示例(请求及响应加解密、接口请求验证签名、入参过滤器、异常referer请求/登录拦截器)
  • 除此之外, 这篇博客: referer拒绝了!中的 什么是referer 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 请求头字段允许由客户端指定资源的 URI 来自于哪一个请求地址

  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料,我可以给出以下解决方案:

    1. 检查百度地图开发者账号是否设置了referer白名单限制,如果有,可以将限制取消。
    2. 在头部添加以下代码:<meta name="referrer" content="strict-origin-when-cross-origin">,这可以防止referer泄露,从而保护隐私,并可以通过百度地图App Referer校验。
    3. 可以使用 Chrome 浏览器的 referer control 插件来更改 referer 来源,例如将123.baidu.com的referer设置成http://456.baidu.com。
    4. 对于需要防范 CSRF 的请求,或者防盗链的图片访问,可以在请求时添加 referer 头部信息。例如,在 Java 中可以使用 OkHttp 库发送带有 referer 的请求,代码示例可以参考段落7提供的示例代码。

    综上所述,以上是解决百度地图App Referer校验失败的问题的几种方案。如果您遇到其他问题或问题较为复杂,建议寻求更专业的帮助。

参考了部分chaptgpt的答案:
APP Referer校验失败通常是由于以下原因导致的:

  1. 网络连接问题:可能是您的网络连接不稳定或存在延迟,导致您无法成功发送请求并接收响应。您可以尝试在稳定的网络环境下运行应用程序,或者重启您的设备。
  2. DNS解析问题:如果您的设备所在的DNS解析出现问题,可能会导致您无法正确获取来自第三方应用程序的Referer信息。您可以尝试使用不同的DNS服务器或者在设备上设置默认的DNS服务器。
  3. 应用程序设置问题:可能是您的应用程序在设置中禁用了Referer信息的发送。您可以检查您的应用程序设置,确保已启用了Referer发送。
    可以尝试以下几种方法:
  4. 确保您的网络连接稳定,并且在可靠的网络环境下运行应用程序。
  5. 检查您的DNS服务器设置,确保使用的DNS服务器与第三方应用程序使用的DNS服务器一致。
  6. 检查您的应用程序设置,确保已启用了Referer发送。
  7. 如果您的应用程序在设置中禁用了Referer信息的发送,请尝试重新启用。
  8. 检查百度地图 api 的 ak 是否正确。另外,确认该 ak 绑定了百度地图产品并允许使用您的应用程序。
  9. 确保你在使用 api 时发送了正确的 http 引用url(referer)。请参照文档中给出的参数设置验证您是否设置了正确的 referer 值。
  10. 检查您的服务器是否统一将 http 请求升级为 https 请求,并且其他域名都不会发送 http 请求到您的服务器。如果您拥有多个子域和 cdn,请检查每个子域和 cdn 是否都配置了 https。
  11. 检查您的浏览器是否设置了防火墙,安全加速或者广告拦截插件等扩展。这些插件可能妨碍访问某些网站或 api。如果以上方法都无法解决问题,您可以尝试联系百度地图的技术支持团队,寻求帮助和解决方案。

跨域问题 前端搞个代理 或者后端 用允许访问属性 设置 为 *