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)
}
})
})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。