鍍金池/ 問答/Java  Linux  HTML/ http 請求成功但仍然提示跨域

http 請求成功但仍然提示跨域

本人小白。。。網(wǎng)上也看了不少http資料,但只看清楚了他寫了什么字,重來沒懂他是什么意思。。。。

問題是這樣的:目前是通過后端設(shè)置Access-Control-Allow-Origin: *來解決跨域的(后端我不懂)!前端一律通過ajax來請求接口,今天調(diào)個下載文件接口發(fā)現(xiàn)瀏覽器提示“No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access”,下面是請求截圖:

clipboard.png

請求成功了,數(shù)據(jù)也拿到了,但為何還是提示跨域呢???并且其他接口都沒問題,唯獨這個。。。。
然后我對比了下其他接口的響應(yīng)頭,其他接口響應(yīng)頭都有Access-Control-Allow-xxxx的相關(guān)信息 包括Access-Control-Allow-Origin:*;而這個接口響應(yīng)頭啥都沒有!如果是沒請求成功 數(shù)據(jù)也沒拿到,我可能還以為后端沒設(shè)置允許我這個域訪問,但是現(xiàn)在。。。。。簡直搞不清楚狀況啊。。天書啊。。。這是,這和農(nóng)田里隨便找個農(nóng)民伯伯給他講解航空母艦的制造一樣懵逼啊。。。。

我的理解是,這個跨域還是瀏覽器端攔截,雖然你后端返回數(shù)據(jù),但是瀏覽器同源策略(由于沒有Access-Control-Allow-Origin:*)還是認(rèn)為跨域,所以也不會觸發(fā)ajax的success,那這樣的話問題又來了,如果后端沒設(shè)置Access-xxx那我應(yīng)該請求不了的。更不可能拿到數(shù)據(jù),那如果設(shè)置了。。。Access-xxx去哪了?

本人就初中學(xué)歷,希望前輩們能通俗易懂的講解下整問題的來龍去脈,感激不盡!

回答
編輯回答
互擼娃
但只看清楚了他寫了什么字,重來沒懂他是什么意思
這句話很有意思~
2017年9月16日 04:14
編輯回答
別傷我

1.首先判斷是否跨域是瀏覽器端的行為,也就是說即使拿到數(shù)據(jù)了,響應(yīng)頭不對,瀏覽器認(rèn)為跨域了也會終止后續(xù)操作
2.你這個請求沒有貼地址,后端對這個請求的響應(yīng)少了個請求頭

2018年4月28日 03:44
編輯回答
晚風(fēng)眠

我也遇到類似的現(xiàn)象,問題表現(xiàn)為,當(dāng)你請求一個騰訊云上的資源的時候,瀏覽器network里面可以看到數(shù)據(jù)都完整的返回了,然而瀏覽器拋出了跨域問題,我的程序也因為請求異常而終止了。
之前的做法是讓后端加上允許跨域,問題是解決了,但是這個現(xiàn)象自己也理解不了,當(dāng)時沒有深究。
個人感覺我當(dāng)時使用的那個情況可能跟資源經(jīng)由cdn的關(guān)系,但具體關(guān)系自己也不明了。

2017年1月18日 06:52
編輯回答
夏木

跨域,jsonp不了解一下?
直通車:關(guān)于跨域和jsonp的一些理解(新手向)

2018年7月12日 12:54
編輯回答
膽怯

這個講的很詳細(xì) 。https://developer.mozilla.org...

PS: 你把請求換成post試試,肯定報錯。

2018年5月23日 08:58