首页 > 其他分享 >mapbox没有token/token失效,地图闪烁后变空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.

mapbox没有token/token失效,地图闪烁后变空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.

时间:2024-09-27 09:19:11浏览次数:9  
标签:Mapbox access token 报错 mapbox gl

目录

mapbox没有token/token失效,地图闪烁后空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.

一、问题描述

二、mapbox去除token验证

1、找到mapbox-gl文件夹

2、找到mapbox-gl.js文件

3、找到对应位置并修改

 4、清除缓存

5、问题解决

三、高阶部分:为什么这样解决问题?

四、总结


作者:watermelo37

涉及领域:Vue、SpingBoot、Docker、LLM、python等

---------------------------------------------------------------------

温柔地对待温柔的人,包容的三观就是最大的温柔。

---------------------------------------------------------------------

mapbox没有token/token失效,地图闪烁后空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.

一、问题描述

        在使用mapbox地图的时候,地图出现之后一瞬间就变成空白,F12打开控制台发现报错:

Failed to load resource: the server responded with a status of 401 ()

Error: A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/

错误:使用Mapbox GL JS需要有效的Mapbox访问令牌。要创建帐户或新的访问令牌,请访问https://account.mapbox.com/

        这个错误是说你的mapbox验证令牌(token)失效了,需要到官网(https://account.mapbox.com/)重新申请一个。但是申请非常不方便。本文将介绍一种符合程序员优雅美学的暴力破解方法,非常简单。

二、mapbox去除token验证

1、找到mapbox-gl文件夹

        进入node_modules文件夹,往下滑,找到mapbox-gl文件夹(不是@mapbox文件夹)。

2、找到mapbox-gl.js文件

        在mapbox-gl文件夹下,按照如下的文件层级找到mapbox-gl.js文件

mapbox-gl/dist/mapbox-gl.js

3、找到对应位置并修改

        搜索“this._requestManager._customAccessToken” ,应该有三个搜索结果,找到第二个匹配位置。

        可能具体内容随着mapbox版本内容的差异有细微的变化,但mapbox3.x版本基本都有这个结构。它的作用就是对你的token请求进行判断:如果含token的请求在mapbox服务器对应接口上没有拿到数据,返回状态码是401(即token无效),那么就报错:"A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/"

        到这里看懂了之后,修改就很简单了,直接将e改成false,利用JavaScript的短路规则直接跳过后续e.message===Ce||401===e.status部分的判断,那么就能解决问题咯。

        修改完并保存

 4、清除缓存

        最后还有一步,我们要知道,项目一旦启动过,就会生成依赖缓存文件,后续启动只会更新代码更新的部分,不会检查依赖库的代码是否变化,所以需要清除依赖缓存文件,这里用vue3+vite项目做示范,找到node_modules文件夹,在其中找到.vite文件夹,将其删掉,重新运行项目即可。

        如果是其他脚手架,比如Webpack + Vue CLI,那么就需要在这个目录下寻找缓存文件夹并删除:node_modules/.cache。

5、问题解决

        npm run dev 重新项目,mapbox地图已经可以正常显示了。

三、高阶部分:为什么这样解决问题?

        解决思路其实很简单,页面闪烁,闪烁前瞬间是能加载地图的,说明本地服务拿到了数据,但是出于某种原因被隐藏掉了,如果在向mapbox请求数据的过程就被拦截了,那么绝不可能出现闪烁的情况,而是直接显示空白。

        既然本地已经拿到了数据,那么只需要找到拦截的部分,并将拦截部分的代码改掉,那么理论上就能正常显示地图。同时由于错误信息中提到了“the server responded with a status of 401 ()”,代表服务器返回了一个状态码为401的响应(正确的状态码应该是200)。那么直接在源码中搜索401,这么一大段代码里面一共只有5个地方出现过401,挨个检查一遍,其中有三个401是一大串数字中的一部分,剩下两个一个对应的报错是:“you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes”,另一个对应的报错是:“A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/”。再结合具体的报错信息,就能定位问题所在。

四、总结

        本博客介绍了mapbox如何去除token验证,暴力破解mapbox的token验证机制。一劳永逸解决mapbox地图闪现一下然后变成空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.的方法,还介绍了类似问题的具体解决思路。

         只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

        其他热门文章,请关注:

        你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

        通过array.filter()实现数组的数据筛选、数据清洗和链式调用

        极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

        el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

        在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境

        干货含源码!如何用Java后端操作Docker(命令行篇)

        JavaScript中闭包详解+举例,闭包的各种实践场景:高级技巧与实用指南

        PDF预览:利用vue3-pdf-app实现前端PDF在线展示

        巧用Array.forEach:简化循环与增强代码可读性

        Docker 入门全攻略:安装、操作与常用命令指南

        MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver

        shpfile转GeoJSON且控制转化精度;如何获取GeoJSON?GeoJson结构详解

标签:Mapbox,access,token,报错,mapbox,gl
From: https://blog.csdn.net/RenGJ010617/article/details/142485422

相关文章

  • 易优CMS后台上传图片报错mkdir(): Permission denied 报错-eyoucms
    当你在易优CMS后台上传图片时遇到“mkdir():Permissiondenied”的错误提示时,通常是因为文件系统的权限设置不当。以下是一些具体的解决步骤:步骤1:检查目录权限确定问题目录确认出现问题的目录是 /core/library/think/cache/driver/File.php。实际上,问题可能出现在其他目......
  • 易优CMS请重启MYSQL数据库,或者联系空间服务商处理[错误报错·····]出现以下提示该
    当你遇到“请重启MYSQL数据库,或者联系空间服务商处理”的错误提示时,通常意味着数据库连接存在问题,可能是由于数据库服务未启动,或者是数据库配置信息不正确导致的。以下是一些基本的解决步骤:步骤1:检查数据库服务状态确认数据库服务是否启动如果你有访问服务器的权限,可以通......
  • 易优CMS为何我安装完提示这个报错?:Array and string offset access syntax with curly
    当你遇到类似 Arrayandstringoffsetaccesssyntaxwithcurlybracesisdeprecated 的报错时,通常是因为当前使用的PHP版本较高,而程序代码中使用了一些已弃用的语法。原因分析PHP版本过高:当前使用的PHP版本(如PHP7.4或更高版本)不再支持某些旧的语法形式。代码使......
  • eyoucms易优数据库表卡死报错
    当使用易优EyouCMS时遇到数据库表卡死或报错的情况,这可能是由于多种原因造成的,如数据库锁冲突、长时间运行的查询、服务器资源不足等。以下是一些可能的原因及解决方法:原因及解决方法1.数据库锁冲突数据库表卡死常常是由于锁冲突导致的,尤其是在并发写操作较多的情况下。解决......
  • 无径之林DirectX组件报错大起底:原因、影响及修复步骤
    一、报错原因无径之林游戏在运行过程中,如果DirectX组件出现报错,通常是由以下几个原因造成的:DirectX版本问题:DirectX版本过低、损坏或未正确安装,都可能导致游戏无法正确调用DirectX的功能,从而引发报错。显卡驱动问题:显卡驱动程序过时、不兼容或安装不正确,会直接影响DirectX......
  • Token: 数据库、存储系统和API安全的应用
    一.TokenToken是一种常见的计算机术语,它在不同的上下文中有不同的含义。在身份验证和授权的上下文中,Token通常指的是服务端生成的一串字符串,作为客户端进行请求的一个令牌。当用户登录后,服务器会生成一个Token并返回给客户端,客户端在后续的请求中携带这个Token,以此来验证用户......
  • 【报错解决】moviepy临时保存视频文件处理后删除不了?
    报错问题如果在尝试删除临时视频或音频文件时遇到“占用无法删除”的错误报错原因这通常意味着有某个进程仍然在使用这些文件。原因是 VideoFileClip 对象或其相关的处理在文件被删除之前还没有完全释放对文件的锁定。解决方法在 moviepy 的 VideoFileClip 类中,并没......
  • laravel: 报错: Target class [view] does not exist.
    一,报错信息:NextIlluminate\\Contracts\\Container\\BindingResolutionException:Targetclass[view]doesnotexist.in/web/api/vendor/laravel/framework/src/Illuminate/Container/Container.php:940Stacktrace:#0/web/api/vendor/laravel/framework/src/Il......
  • hexo部署报错:Deployer not found: git
    一、报错将hexo部署到Github时发生Deployernotfound:git报错二、报错原因及解决方法报错原因在初次部署hexo时没有安装hexo-deployer-git插件导致部署时发生Deployernotfound:git报错 解决方法1.执行cnpminstallhexo-deployer-git--save或npminstallhexo-d......
  • 【配置docker镜像】docker报错ERROR [todo-app] resolve image config for docker-ima
    在学习dockerdesktop的官方案例multi-container-app时,运行命令dockercomposeup-d时遇到如下报错:PSD:\AA\multi-container-app>dockercomposeup-d[+]Building21.3s(3/3)FINISHED......