跨域获取

本文介绍了如何使用原生JavaScript和jQuery的AJAX实现跨域获取数据。通过JSONP(JSON with Padding)方式,从后端获取航班信息,包括航班编号、始发城市、终到城市和出发时间,并在页面上展示。
摘要由CSDN通过智能技术生成

1.原生JS实现
课堂练习:
点击显示按钮显示从后端发过来的dict字典,将字典中的值显示在页面上
html:代码:

显示

航班编号:

始发城市:

终到城市:

出发时间:

服务器端代码: #跨域2 @app.route('/08-flight') def crossdomain2(): #接收前端传递过来的callback的参数 #callback参数值是指定前端执行处理数据的函数名 cb=request.args.get('callback') dic={ 'flighNO':'MU763', 'start':'BeiJing', 'end':'Saipan', 'time':'16:55', } print('1111') #将dic转换成json串,返回到前端 return cb+"("+json.dumps(dic)+")" 2.jquery去实现的两种方式: jquery的跨域 jsonp - json with padding(内边距,包围) 指:要执行的前端函数, 正如----> process_msg({xxx:xxx})
http://127.0.0.1:5000/08-flight?callback=process_flight
将原生代码中的冗长复杂的script等形式改为如下代码:
$.ajax({
  url:'xxx',
  type:'get',
  dataType:'jsonp',		返回回来的是一个要执行的前端函数
  jsonp:'callback' //定义了callback参数名, 指传递到后端参数的名称叫什么,jsonp不写默认参数名是callback
  jsonpCallback:'process_flight'//定义了响应回来的处理函数名称
});

代码:这种方式还需要定义show处理函数
function btnShow() {
$.ajax({
url:‘http://127.0.0.1:5000/08-flight’,
type:‘get’,
dataType:‘jsonp’,
jsonp:‘callback’,
jsonpCallback:‘show’
})
}
jquery中通过ajax实现最简单的跨域:
最最最简易版:
$.ajax({
url:‘xxx’,
type:‘get’,
dataType:‘jsonp’,
success:function(data){
处理响应回来的数据
}
})
代码:
服务端
@app.route(’/08-flight’)
def crossdomain2():
#接收前端传递过来的callback的参数
#callback参数值是指定前端执行处理数据的函数名
cb=request.args.get(‘callback’)
dic={
‘flighNO’:‘MU763’,
‘start’:‘BeiJing’,
‘end’:‘Saipan’,
‘time’:‘16:55’,
}
print(‘1111’)
#将dic转换成json串,返回到前端
return cb+"("+json.dumps(dic)+")"
html端:
function btnShow() {
$.ajax({
url:‘http://127.0.0.1:5000/08-flight’,
type:‘get’,
dataType:‘jsonp’,
success:function (msg) {
alert(msg.flighNO)
$("#flighNo").html(msg.flighNO);
$("#start").html(msg.start);
$("#end").html(msg.end);
$("#time").html(msg.time);
},
});
}
显示


航班编号:


始发城市:


终到城市:


出发时间:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值