您好,登錄后才能下訂單哦!
script便簽可以跨域,基于這個(gè)機(jī)制,可以在A域的頁(yè)面中定義jsonp函數(shù),script標(biāo)簽返回這個(gè)函數(shù)的調(diào)用
如下代碼所示
A域頁(yè)面代碼
<body>
<div>正在獲取數(shù)據(jù)……</div>
<script>function jsonp(data) {
document.querySelector('div').innerHTML = data;
}
</script>
<!--向B域請(qǐng)求數(shù)據(jù)-->
<script src="http://127.0.0.1:3000/data.js"></script>
</body>
B域服務(wù)器代碼
const Koa = require('koa')
const bodyParser = require('koa-bodyparser')
const app = new Koa()
const util = require('./util')
// bodyParser 插件,處理 post 提交過來(lái)的數(shù)據(jù)
app.use(bodyParser())
app.use(async ctx => {
const url = ctx.url
util.log(`訪問地址:${url};請(qǐng)求方法:${ctx.method}`)
if (url.indexOf('/data.js') === 0) { // 首頁(yè)
ctx.set('Content-Type', 'application/x-javascript')
ctx.body = `${ctx.query.callback || 'jsonp'}("哈哈哈哈,JSONP 可以的!")`//返回方法的調(diào)用
} else {
ctx.status = 404
ctx.body = '404'
}
})
app.listen(3000, () => {
util.log('服務(wù)啟動(dòng),打開 http://127.0.0.1:3000/')
})
結(jié)果如下:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。