加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

React + fetch API + 百度地图api + 跨域 填坑。

发布时间:2020-12-15 06:51:25 所属栏目:百科 来源:网络整理
导读:做项目遇到一个百度地图api 的跨域问题。由于使用fetch ,在调用类似 http://api.map.baidu.com/geocoder/v2/callback=renderReverselocation=39.983424,116.322987output=jsonpois=1ak=您的ak 的时候,不可避免的出现了跨域问题。 fetch(baseUrl + 'locatio

做项目遇到一个百度地图api 的跨域问题。由于使用fetch ,在调用类似

http://api.map.baidu.com/geocoder/v2/callback=renderReverse&location=39.983424,116.322987&output=json&pois=1&ak=您的ak 的时候,不可避免的出现了跨域问题。

fetch(baseUrl + 'location=39,116&output=json&ak=您的ak&callback=showLocation',{
    mode:'no-cors',// credentials: 'include',headers:{ Accept: 'application/json',}
  })
    .then( response => response.json() )
    // .then(data => console.log(data))
    .catch( e => console.log(e,111))

设置 mode:'no-cors',是解决了报错问题,但是响应的body会为空。

仔细查看百度地图api文档后,决定从jsonp入手,
于是找到这个库fetch-jsonp

上代码

import fetchJsonp from 'fetch-jsonp'
fetchJsonp(baseUrl + 'location=39,116&output=json&ak=您的ak',{
    // mode:'no-cors',},jsonCallbackFunction:'showLocation'
  })
    .then( response => response.json() )
    .then(data => console.log(data))

这时候便可以得到正确的response body了。

ps: 喜欢请点赞o( ̄▽ ̄)ブ

ps: 有更好方法的请赐教~

ps:fetch-jsonp文档

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读