用node简单搭建服务器实现后端jsonp请求
后端接口
导入express模块,导入jsonp数据
//导入express模块
const express = require('express')
//express实例化
const app = express()
//导入jsonp数据
const appData = require('./data.json')
const seller = appData.seller
const router = express.Router()
//定义接口
router.get('/getinfo', function(req, res, next) {
var _callback = req.query.callback;
var _data = seller;
if (_callback){
res.type('text/javascript');
res.send(_callback + '(' + JSON.stringify(_data) + ')');
}
else{
res.json(_data);
}
})
app.use('/api', router)
const port = process.env.PORT || 8900
module.exports = app.listen(port, function (err) {
if (err) {
console.log(err)
return
}
console.log('Listening at http://localhost:' + port + '\n')
})
前端请求
//安装jsonp包并导入
//npm install jsonp
import originJsonp from 'jsonp'
//用created钩子抓取数据
//originJsonp(url,options,callback)
//url是路由
//options是后端要执行的callback函数,'callback'变量名称要与后端保持一致
//callback是处理返回数据的回调函数
created() {
originJsonp('http://localhost:8900/api/getinfo?', {callback:'json',prefix: 'b'},
(err, data) => {
if (!err) {
this.seller=data
} else {
reject(err)
}
})
},