Django实现跨域的2种方法
jsonp
方式一:指定返回方法
#后端 defview(request): callback=request.GET.get('callback') returnHttpResponse('%s("我要上鸭王")'%(callback,));
#javascript functionsubmitJsonp4(){ $.ajax({ url:'http://127.0.0.1:9000/xiaokai.html', type:'GET',//写post没有用只能发get dataType:'jsonp',//伪造ajax基于script标签的创建和删除 jsonp:'callback',//告诉后台这个key jsonpCallback:'func'//要返回这个函数名******8 }) } functionfunc(arg){ console.log(arg); }
方式二:不指定返回方法
functionsubmitJsonp4(){ $.ajax({ url:'http://127.0.0.1:9000/xiaokai.html', type:'GET',//写post没有用只能发get dataType:'jsonp',//伪造ajax基于script标签的创建和删除 jsonp:'callback',//告诉后台这个key //思考这时候的函数名为一个随机的字符串 //响应直接调用success对应的方法 //如果自己写了jsonpCallback的值 //不会报错,而是把自己写再拼上随机的同样回调success对应的方法 success:function(data){ console.log() } }) }
cors
defview(request): response=HttpResponse(json.dumps(info)) #添加白名单允许哪个域名可以访问 response["Access-Control-Allow-Origin"]="http://127.0.0.1:8006" #response["Access-Control-Allow-Origin"]="*" returnresponse
$(".get_service").click(function(){ $.ajax({ url:"http://127.0.0.1:8008/service/", success:function(data){ console.log(data) } }) })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。