跨域请求的两种实现方式

Posted sunch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域请求的两种实现方式相关的知识,希望对你有一定的参考价值。

Jsonp

域1

index.html

<script>
        $(".get-service").click(function () {
            $.ajax({
                url: "http://127.0.0.1:8005/service/",
                type: "get",
                dataType: "jsonp",
                jsonp: "callbacks",         // 伪造ajax, 基于script
                // jsonpCallback: "alex",   // 不写的话,默认是随机字符串
                success: function (data) {
                    console.log("//", data, typeof data);
                    data = JSON.parse(data);
                    console.log("//", data, typeof data);
                }
            })
        });
</script>

域2

被请求的域

views.py

def service(request):           # jsonp
    data = {"name": "sun", "age": 28}
    import json
    data = json.dumps(data)     # 序列化
    func = request.GET.get("callbacks")
    return HttpResponse("%s(‘%s‘)" % (func, data))

cors

域1

index.html

<script>
    $(".get-service").click(function () {
        $.ajax({
            url: "http://127.0.0.1:8005/service/",
            data: {},
            success: function (data) {
                console.log(data);
                data = JSON.parse(data);
                console.log(data);
            }
        });

    });
</script>

域2

被请求的域

views.py

def service(request):           # cors版本
    data = {"name": "sun", "age": 28}
    import json
    data = json.dumps(data)     # 序列化
    response = HttpResponse(data)
    response["Access-Control-Allow-Origin"] = "http://127.0.0.1:8004"    #*的话代码所有的ip地址都可以向本域跨域
    return response

 

以上是关于跨域请求的两种实现方式的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET中JSONP的两种实现以及其他跨域解决方案的简单实现

ASP.NET MVC 实现AJAX跨域请求方法《1》

ASP.NET MVC 实现AJAX跨域请求的两种方法

React中开启代理的两种方式

React中开启代理的两种方式

React中开启代理的两种方式