亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于 jsonp 的一些疑問

關于 jsonp 的一些疑問

皈依舞 2019-05-12 09:14:58
想知道,在利用jsonp實現跨域的時候,在服務端返回數據,把數據作為參數放到回調函數中`callback(JSON.stringify(data))`但是此時服務端返回的應該是個字符串呀,瀏覽器是如何直接把這個返回的字符串當成js代碼執行的?完整代碼如下//jsfunctionjsonp(url){//創建script標簽varscript=document.createElement('script')script.src=urlscript.id='jsonp'document.getElementsByTagName('body')[0].appendChild(script)//移除標簽,清除占用內存script.onload=()=>{document.getElementsByTagName('body')[0].removeChild(script)script=null}}functionsendHaha(msg){console.log(msg)}jsonp('http://localhost:3333/haha?callback=sendHaha')//服務端varhttp=require('http')varurllib=require('url')vardata={data:'hhh'}http.createServer((req,res)=>{varparams=urllib.parse(req.url,true)varcallback=params.query.callbackif(callback){varstr=`${callback}(${JSON.stringify(data)})`res.end(str)}}).listen(3333,()=>{console.log('haha')})謝謝大佬的解答~~感激不盡
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

${callback}(${JSON.stringify(data)})改成:
`${callback}({${JSON.stringify(data)}})`
剛才我寫錯了,你不用該的,你只需要再你回調方法里處理就行了:
functionsendHaha(msg){
vardata=JSON.parse(msg);
}
                            
查看完整回答
反對 回復 2019-05-12
  • 2 回答
  • 0 關注
  • 443 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號