javascript - 使用JavaEE——SSH框架開(kāi)發(fā)Web項(xiàng)目,如何使用CORS實(shí)現(xiàn)跨域請(qǐng)求?
問(wèn)題描述
1.我已經(jīng)根據(jù)CORS的幫助文檔,進(jìn)行了配置。文檔路徑為:http://www.ruanyifeng.com/blo...;本地項(xiàng)目配置如圖:(1).導(dǎo)入支持包(2)web.xml的配置
2.通過(guò)上面的配置,理論上是可以進(jìn)行跨域請(qǐng)求,但是事實(shí)是不行的!貼上我的html代碼:
<!doctype html><html> <head> <title>axios - get example</title> <link rel='stylesheet' type='text/css' /> </head> <body class='container'> <h1>axios.get</h1> <ul class='list-unstyled'></ul> <script src='http://www.aoyou183.cn/wenda/axios.min.js'></script> <script> var url = ’https://api.douban.com/v2/book/1220562’; axios.get(url).then(function (response) { document.getElementById(’people’).innerHTML = ’<li class='text-danger'>’ + response.data + ’</li>’; }).catch(function (err) { document.getElementById(’people’).innerHTML = ’<li class='text-danger'>’ + err.message + ’</li>’;}); </script> </body></html>
其中url是豆瓣的api運(yùn)行結(jié)果為:請(qǐng)求頭以及請(qǐng)求狀態(tài)為:(1)General
(2)Response
(3)Request
3.很疑惑,請(qǐng)求狀態(tài)碼是200,為什么就是沒(méi)有數(shù)據(jù)返回而且console還報(bào)錯(cuò)?官方文檔上說(shuō)只要配置好了就可以跨域了,為什么本機(jī)卻實(shí)現(xiàn)不了?是配置環(huán)節(jié)出問(wèn)題了?還是落下了什么環(huán)節(jié)?請(qǐng)相關(guān)大牛賜教!在下大三黨一枚,做項(xiàng)目急需解決這個(gè)問(wèn)題,萬(wàn)分感謝!
問(wèn)題解答
回答1:解決跨域請(qǐng)求的方法很多,cors方式依賴于服務(wù)端返回正確的響應(yīng)頭信息Access-Control-Allow-Origin,你的截圖顯示豆瓣api并沒(méi)有返回Access-Control-Allow-Origin:* ,所以跨域失敗。還可以使用jsonp解決跨域,豆瓣是支持jsonp的。
