jsonp 實現前端跨域


1、基於ajax 發起jsonp 請求。

前端代碼:

 let url = 'http://localhost:8001/';
        $.ajax({
            type: 'get',
            dataType: 'jsonp',
            url: url,
            jsonp: "callback",
            success: function (res) {
                console.log('success',res)
            },
            error (err) {
                console.error(err)
            }
        })

 后端代碼:(node server)

let http = require('http');
http.createServer((req,res) => {
    res.setHeader('Content-Type', 'application/json')
    res.end(JSON.stringify({
        data: 'hello word!',
        status: 'success'
        }))
}).listen(8001)

 請求結果:

 

2、callback函數回調,動態創建script標簽

前端代碼:

             let url = 'http://localhost:8001/';   
       function ajaxHandle (data) {
            console.log('接受data', data)
        }
       
        var script = document.createElement('script');
        script.setAttribute('src', url);
        document.getElementsByTagName('head')[0].appendChild(script)

后端代碼:(node server)

let http = require('http');
http.createServer((req,res) => {
    res.setHeader('Content-Type', 'application/json')
    let callback = req.url.split('&')[0].split('=')[1]; //  獲取callback 函數
    let data = callback + '(' + JSON.stringify({data: 'hello word!'}) + ')'; // 拼接數據
    res.end(data)
}).listen(8001)

 請求結果:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM