前端$.ajax({? ? type: "GET",? ? url: "localhost:3000/getData.jsonp",? ? dataType: "jsonp",? ? success: function(data) {? ? ? console.log(data)? ? }});nodeconst Koa = require('koa')const app = new Koa()app.use(async(ctx) => {? ? console.log(ctx.method);? ? ctx.set("Access-Control-Allow-Origin", "*");? ? /*星號表示所有的異域請求都可以接受,*/? ? ctx.set("Access-Control-Allow-Methods", "GET,POST");? ? // 如果jsonp 的請求為GET? ? if (ctx.method === 'GET' && ctx.url.split('?')[0] === '/getData.jsonp') {? ? ? ? console.log(ctx.query)? ? ? ? // 獲取jsonp的callback? ? ? ? let callbackName = ctx.query.callback || 'callback'? ? ? ? let returnData = {? ? ? ? ? ? success: true,? ? ? ? ? ? data: {? ? ? ? ? ? ? ? text: 'this is a jsonp api',? ? ? ? ? ? ? ? time: new Date().getTime(),? ? ? ? ? ? }? ? ? ? }? ? ? ? // jsonp的script字符串? ? ? ? let jsonpStr = `;${callbackName}(${JSON.stringify(returnData)})`? ? ? ? // 用text/javascript,讓請求支持跨域獲取? ? ? ? ctx.type = 'text/javascript'? ? ? ? // 輸出jsonp字符串? ? ? ? ctx.body = jsonpStr? ? } else {? ? ? ? ctx.body = 'hello jsonp'? ? }})app.listen(3000, () => {? ? console.log('[demo] jsonp is starting at port 3000')})瀏覽器訪問報(bào)錯,控制臺里面后臺都沒打印node端沒打印東西,node里面應(yīng)該是沒走到那里大神們,請幫助啊
關(guān)于jsonp跨域報(bào)錯的問題
www說
2019-03-20 16:19:26