因爲瀏覽器的同源策略,用ajax 訪問第三方接口會報跨域錯誤。前端
解決辦法,1,使用nginx 架設前端網站,在nginx中配置代理。ios
2,本身寫後端代碼,經過後端訪問第三放接口,把第三方接口返回的數據 再發給前端。nginx
這裏先說 第二種方法:後端代碼ajax
const http=require('http'); const querystring=require('querystring'); const superAgent=require('superagent'); const url=require('url'); const db=require('./db'); http.createServer(function(req,res){ var postData=''; var params=url.parse(req.url,true).query; var proxy_url=params.url.replace(/\$/g,'&') console.log('proxy:',proxy_url) res.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:5500'); var sreq=superAgent.get(proxy_url) sreq.pipe(res); sreq.on('end',()=>{ console.log('done') }) }).listen(3000); console.log("服務啓動。。。")
這裏 用了superagent 模塊。 因爲我是先後端分離的,因此配置了跨域容許訪問的域名:axios
http://127.0.0.1:5500 這個是我前端服務的域名+端口號
前端代碼:
axios.get('http://localhost:3000?url='+url,{ //responseType: 'document' }).then((res)=>{ console.log(res.data) })
前端代碼 主要是訪問剛剛啓動的後端服務,我用的是axios的get請求。參數url 就是後端須要幫忙訪問的第三方接口地址後端