//1.引入 : 在main.js 中引入该文件即可
//2.使用: axios.jsonp('地址').then(res => {
// console.log(res)
// } import axios from 'axios' axios.jsonp = (url, params) => {
// 1 根据 url 和params 拼接请求地址
url += '?'
for (let k in params) {
url += k + '=' + params[k] + '&'
}
// 2 拼接 callback
const callbackName = 'itcast_' + (new Date() - 0)
url += 'callback=' + callbackName
// 3 动态创建script标签
const script = document.createElement('script')
script.src = url
document.head.appendChild(script)
return new Promise((resolve, reject) => {
// 给window添加一个函数,就相当于全局函数
window[callbackName] = function (data) {
// data 就是 JSONP接口返回的数据
// 调用resolve获取数据
resolve(data)
// 删除掉添加给window的属性
delete window[callbackName]
// 移除 script 标签
document.head.removeChild(script)
}
})
}

01.在vue中通过 JSONP 方式来跨域的更多相关文章

  1. Vue中应用CORS实现AJAX跨域,及它在 form data 和 request payload 的小坑处理

    基本概念部分(一):理解CORS 说道Vue的跨域AJAX,我想先梳理一遍CORS跨域,"跨域资源共享"(Cross-origin resource sharing),它是一个W3 ...

  2. Vue中如何使用axios请求跨域数据

    1.axios不支持jsonp,因为axios的作者觉得jsonp不太友好,推荐用CORS方式更为干净: 2.在使用axios发送请求时,服务器端设置 res.header("Access- ...

  3. jQuery中利用JSONP解决AJAX跨域问题

    写在前面 跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨 ...

  4. jsonp 方式处理跨域前后端代码如何配合?

    JSONP(JSON with Padding)(json   数据填充)只支持GET请求 是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题. 跨域产生原因是浏览器的同源策略.( ...

  5. vue中axios访问Java后端跨域问题解决

    问题背景: 前后端分离,前端选用Vue,后端选用Java,vue编译出的静态页面采用ngix发布,在前端访问后端时出现跨域问题. 解决方法: 跨域的问题解决方法有好多种,这里是通过服务端解决,以下是代 ...

  6. 转换:使用vue-axios和vue-resource解决vue中调用网易云接口跨域的问题

    本人配置成功https://segmentfault.com/a/1190000011072725

  7. jsonp与cors跨域的一些理解(转)

    CORS其实出现时间不短了,它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源.而这种访问是被同源策略所禁止的. ...

  8. 用jQuery与JSONP轻松解决跨域访问的问题

    浏览器端的真正跨域访问,推荐的是目前jQuery $.ajax()支持get方式的跨域,这其实是采用jsonp的方式来完成的. var qsData = {'searchWord':$("# ...

  9. [转]js中几种实用的跨域方法原理详解

    转自:js中几种实用的跨域方法原理详解 - 无双 - 博客园 // // 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同 ...

随机推荐

  1. cocos2dx-lua调用C++

    文参考:https://www.cnblogs.com/xiaonanxia/p/4987856.html 上面的文章是IOS版教程,用4部分说明原理,1部分说操作步骤. 这里用window VS20 ...

  2. css3兼容360

    在头部添加 <!--启用360浏览器的极速模式(webkit) --> <meta name="renderer" content="webkit&qu ...

  3. http强转https websocket

    需要在httpd.conf文件最后添加即可: <Directory /> Options FollowSymLinks AllowOverride All RewriteEngine on ...

  4. adb连接夜神模拟器执行命令

    1.要进入夜神模拟器的bin目录 2.连接夜神模拟器 3.执行命令 cd %~dp0 nox_adb.exe connect 127.0.0.1>nul set num= :ok set /a ...

  5. loading js备份

    loadingManageEdit.jsp $(function(){ //组织 var lodingDeparts =[<c:forEach items="${lodingDepar ...

  6. WebView与JS互调

    在Android 4.2之后JS的注入需要加入注解 @javascriptInterface 1.Android 调用 JS 初始化WebView控件,开启该控件对JS的支持 调用loadUrl()方 ...

  7. Windows 2008 R2防火墙,允许被ping的设置方法

    这篇文章主要介绍了Windows 2008 R2防火墙,允许被ping的设置方法,需要的朋友可以参考下   1.准备 1)原因 出于安全因素考虑,在Windows 2008 R2上是不允许从外部对其P ...

  8. python中thread的setDaemon、join的用法的代码

    下面内容是关于python中thread的setDaemon.join的用法的内容. #! /usr/bin/env python import threading import time class ...

  9. IntelliJ IDEA 如何设置类头注释和方法注释

    从VS转过来的,ide的差距很大的,所以...特意折腾了很久,结果还是没有VS的 '///' 好用 一.类头注释 打开file -> setting -> Editor -> Fil ...

  10. React知识杂烩(持续更新)

    每隔半年不看官方文档,你就会不认识React了