json解决ajax跨域的原理
2024-09-01 21:57:02
- jsonp只能解决GET类型的ajax请求跨域问题
- jsonp请求不是ajax请求,而是一般的get请求
- 基本原理
- 浏览器端:
- 动态生成<script>来请求后台接口(src就是接口的url)
- 定义好用于接受响应数据的函数(fn),并将函数名通过请求参数提交给后台(如:callback=fn)
- 服务器端
- 接收到的请求处理产生结果数据后,返回一个函数调用的js代码,并将结果数据作为实参传入函数调用
- 浏览器端
- 收到响应自动执行函数调用的js代码,也就是执行了提前定义好的回调函数,并得到了需要的结果数据
- 浏览器端:
/*
jsonp请求的接口请求函数
*/
import jsonp from 'jsonp'
import { message } from 'antd'
export const reqWeather= (city)=>{ return new Promise((resolve,reject) => {
const url = `http://wthrcdn.etouch.cn/weather_mini?city=${city}`
//发送jsonp请求
jsonp(url,{},(err,data) =>{
console.log('json()',err,data)
//如果成功了
if(!err&&data.status===){
const {date,type} = data.data.forecast[]
resolve({date,type})
}else{
//如果失败了
message.error('获取天气信息失败')
} })
}) }
//reqWeather('武汉')
最新文章
- ScrollView嵌套ListView,GridView数据加载不全问题的解决
- LVM逻辑卷管理命令
- Highcharts 总结
- MS SQL数据类型比较
- python中的enumerate
- js改变css样式的三种方法
- uboot中添加FIQ中断及相关问题
- Understanding Linux /proc/cpuinfo
- php5.4.3连接SQLite3
- Oracle将英文字符集数据转换成中文
- WCF - 学习总目录
- Object-c学习之路十二(OC的copy)
- javascript之求最值
- javascripts小结
- BBED跳过归档
- Spring框架入门之Spring简介
- Install rapyuta client on Raspberry Pi
- MySQL系列详解二:MySQL语句操作-技术流ken
- JVM-自动内存管理机制
- sql server中的merge
热门文章
- 从零开始的openGL——四、纹理贴图与n次B样条曲线
- springboot使用api操作HBase之shell
- 用正则表达式【regexp】进行高级搜索数据
- d3.js 入门指南
- [译]C# 7系列,Part 6: Read-only structs 只读结构
- C# 派生和继承(派生类与基类)
- Ngnix:最通俗解读,Nginx是什么
- linux部署.net Core项目
- 菜鸟刷面试题(四、Spring/Spring MVC/Spring Boot/Spring Cloud篇)
- 分布式Redis的分布式锁 Redlock