首页 > 编程 > Python > 正文

Django实现跨域的2种方法

2019-11-25 12:09:39
字体:
来源:转载
供稿:网友

jsonp

方式一:指定返回方法

# 后端def view(request):  callback = request.GET.get('callback')  return HttpResponse('%s("我要上鸭王")' %(callback,));
# javascriptfunction submitJsonp4() {  $.ajax({    url: 'http://127.0.0.1:9000/xiaokai.html',    type: 'GET', //写post 没有用 只能发get    dataType: 'jsonp', // 伪造ajax 基于script标签的创建和删除    jsonp: 'callback', //告诉后台这个key    jsonpCallback: 'func' //要返回这个函数名 ******8  })}function func(arg) {  console.log(arg);}

方式二:不指定返回方法

function submitJsonp4() {  $.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

def view(request):  response=HttpResponse(json.dumps(info))    # 添加白名单 允许哪个域名可以访问  response["Access-Control-Allow-Origin"]="http://127.0.0.1:8006"  #response["Access-Control-Allow-Origin"]="*"  return response
$(".get_service").click(function () {   $.ajax({     url:"http://127.0.0.1:8008/service/",     success:function (data) {       console.log(data)     }   }) })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表