练习3-跨域问题(前后台)

9 篇文章 0 订阅
4 篇文章 0 订阅

跨域问题

在这里插入图片描述

方法一:jsonp

1. jsonp的原理

在这里插入图片描述
在这里插入图片描述
代码:
客户端:

<script src="http://localhost:8081/TestJsonp?callback=func"></script>

服务端:

app.get('/TestJsonp',(req,res)=>{
    console.log(req.query.callback);
    fs.readFile(file,(err,data)=>{
        if(err)console.err(err)
        else{
            res.end(`${req.query.callback}(${data.toString()})`)
            //res.end(data.toString())
        }
    })
})

2. jsonp的封装(ajax)

在这里插入图片描述
代码:
客户端:

                    $.ajax({
                        type: "GET",      //data 传送数据类型。post 传递
                        dataType: 'jsonp',  // 返回数据的数据类型json
                        url: "http://localhost:8081/TestJsonp",  // yii 控制器/方法
                        //data: { callback: func },  //传送的数据
                        error: function (err) {
                            console.log(err);
                        }, 
                        success: function (data) {
                                console.log(typeof(data),data);
                        }
                    })

服务端:

app.get('/TestJsonp',(req,res)=>{
    console.log(req.query.callback);
    fs.readFile(file,(err,data)=>{
        if(err)console.err(err)
        else{
            //res.end(`${req.query.callback}(${data.toString()})`)
            res.end(data.toString())
        }
    })
})

方法二:ACAO:’*’

在这里插入图片描述

代码:
客户端:

                    $.ajax({
                        type: "GET",      //data 传送数据类型。post 传递
                        dataType: 'json',  // 返回数据的数据类型json
                        url: "http://localhost:8081/TestJsonp",  // yii 控制器/方法
                        //data: { callback: func },  //传送的数据
                        error: function (err) {
                            console.log(err);
                        }, 
                        success: function (data) {
                                console.log(typeof(data),data);
                            
                        }
                    })

服务端:

app.get('/TestJsonp',(req,res)=>{
    console.log(req.query.callback);
    fs.readFile(file,(err,data)=>{
        if(err)console.err(err)
        else{
            res.set({
                'Content-Type':'application/json',
                'Access-Control-Allow-Origin':'*'
            })
            //res.end(`${req.query.callback}(${data.toString()})`)
            res.end(data.toString())
        }
    })
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值