跨源请求cors和jsonp

一、cors(常用简单)

1、http://127.0.0.1:8000

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>django</h2>
<input type="button" name="" id="getService" value="获取python的数据">
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
    $("#getService").on('click', function () {
        // alert(123)
        $.ajax({
            // 目标域,获取数据
            url: "http://127.0.0.1:8002/service/",
            type: "get",
            success: function (data) {
                console.log(data)
                // console.log(typeof data)
            }
        });
    })
</script>
</body>
</html>

2、http://127.0.0.1:8002

def service(request):
    dic = {"name": "python"}
    response = HttpResponse(json.dumps(dic))
    # 获取资源的ip
    response["Access-Control-Allow-Origin"] = "http://127.0.0.1:8000"
    return response

二、jsonp

1、http://127.0.0.1:8000

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>django</h2>
<input type="button" name="" id="getService" value="获取python的数据">
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
    $("#getService").on('click', function () {
        // alert(123)
        $.ajax({
            // 目标域,获取数据
            url: "http://127.0.0.1:8002/service/",
            type: "get",
            dataType: "jsonp",
            jsonp: "callbacks",
            // jsonpCallback: "abc",
            success: function (data) {
                console.log(data)
                // console.log(typeof data)
            }
        });
    })
</script>
</body>
</html>

2、http://127.0.0.1:8002

def service(request):
    dic = {"name": "python"}
    dic_str = json.dumps(dic)
    func = request.GET.get("callbacks")
    print(func)
    return HttpResponse("{}('{}')".format(func, dic_str))

猜你喜欢

转载自www.cnblogs.com/wt7018/p/11397492.html
今日推荐