http 请求成功但仍然提示跨域
本人小白。。。网上也看了不少http资料,但只看清楚了他写了什么字,重来没懂他是什么意思。。。。
问题是这样的:目前是通过后端设置Access-Control-Allow-Origin: *来解决跨域的(后端我不懂)!前端一律通过ajax来请求接口,今天调个下载文件接口发现浏览器提示“No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access”,下面是请求截图:
请求成功了,数据也拿到了,但为何还是提示跨域呢???并且其他接口都没问题,唯独这个。。。。
然后我对比了下其他接口的响应头,其他接口响应头都有Access-Control-Allow-xxxx的相关信息 包括Access-Control-Allow-Origin:*;而这个接口响应头啥都没有!如果是没请求成功 数据也没拿到,我可能还以为后端没设置允许我这个域访问,但是现在。。。。。简直搞不清楚状况啊。。天书啊。。。这是,这和农田里随便找个农民伯伯给他讲解航空母舰的制造一样懵逼啊。。。。
我的理解是,这个跨域还是浏览器端拦截,虽然你后端返回数据,但是浏览器同源策略(由于没有Access-Control-Allow-Origin:*)还是认为跨域,所以也不会触发ajax的success,那这样的话问题又来了,如果后端没设置Access-xxx那我应该请求不了的。更不可能拿到数据,那如果设置了。。。Access-xxx去哪了?
本人就初中学历,希望前辈们能通俗易懂的讲解下整问题的来龙去脉,感激不尽!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这个讲的很详细 。https://developer.mozilla.org...
PS: 你把请求换成post试试,肯定报错。
我也遇到类似的现象,问题表现为,当你请求一个腾讯云上的资源的时候,浏览器network里面可以看到数据都完整的返回了,然而浏览器抛出了跨域问题,我的程序也因为请求异常而终止了。
之前的做法是让后端加上允许跨域,问题是解决了,但是这个现象自己也理解不了,当时没有深究。
个人感觉我当时使用的那个情况可能跟资源经由cdn的关系,但具体关系自己也不明了。
跨域,jsonp不了解一下?
直通车:关于跨域和jsonp的一些理解(新手向)
1.首先判断是否跨域是浏览器端的行为,也就是说即使拿到数据了,响应头不对,浏览器认为跨域了也会终止后续操作
2.你这个请求没有贴地址,后端对这个请求的响应少了个请求头