使用axios发送jsonp请求

【背景】

axios 本身不支持 jsonp 这种 dataType(不同于 ajax)

【解决方法】

自行封装一个 jsonp 调用方法:

    jsonp(url) {

        return new Promise((resolve, reject) => {

            // 这里的 "jsonCallBack" ,和调用的 jsonp 的 url 中的 callback 值相对应(见粗体字)

            window.jsonCallBack =(result) => {

                resolve(result)

            }

            const JSONP = document.createElement('script');

            JSONP.type = 'text/javascript';

            JSONP.src = url;

            document.getElementsByTagName('head')[0].appendChild(JSONP);

            setTimeout(() => {

                document.getElementsByTagName('head')[0].removeChild(JSONP)

            },500)

        })

    }

调用示例:

request.jsonp(

            'https://xx.map.yy.com/ss/location/v1/ip?callback=jsonCallBack&key=[KEY]&output=jsonp&_=[NUMBER]'

        )

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容