web前端:jsonp格式前端发送和后台接受写法
宣传部部长
2024-04-23 23:39
Ajax的核心是Javascript对象XmlHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
jsonp是ajax提交的一种格式不会受跨域限制
一.前端发送
<button>11111</button>
<scriptclass="lazy" data-src="https://cdn.static.runoob.com/libs/jQuery/1.8.3/jquery.js"></script>
<script>
document.querySelector('button').onclick=function(){
$.ajax({
url:'http://localhost:8000/test',
type:'get',
dataType:'jsonp',
data:{//注意内容必须为字典
aaa:aaa//字典里内容前面key可以不加"",默认会给你加上""变成字符串但是不会当成变量
},//字典后面value有''为字符串,没有为变量
success:function(data){
console.log(data);
}
});
}
</script>
二.后台接受
#我就拿Python举例,其他也大同小异
fromdjango.shortcutsimportrender,HttpResponse,redirect
deftest(request):
callback=request.GET.get('callback')
print(dict(request.GET))#传过来的内容他会打散,具体的自己看一下就知道
#注意点返回的字符串必须是'callback+("返回的字符串")'这样的一个字符串,不然前端不会接收
returnHttpResponse(callback+'("ok")')
JSONP(JSONwithPadding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于server1.example.com的网页无法与不是server1.example.com的服务器沟通,而html的<script>元素是一个例外。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341