【发布时间】:2017-11-20 12:42:53
【问题描述】:
我遇到了一个奇怪的问题。我有一个在端口 8080 上运行的 java spring 应用程序和在端口 3000 上运行的 Angular 应用程序。在发出请求时返回 status 200 并且可以在浏览器网络选项卡中找到响应,但控制台抛出错误 XMLHttpRequest 无法加载 'http://localhost:8080/apiname'。请求的资源上不存在“Access-Control-Allow-Origin”标头。 origin 'http://localhost:3000/#/home' 因此不允许访问。有什么方法可以在不对服务器端进行任何更改的情况下使其正常工作。任何帮助表示赞赏
【问题讨论】:
-
没有。未经服务器允许,您无法发出跨域请求。
-
我也可以使用 curl 或 POSTman,如果服务器不允许请求预览也不应该出现对吗? @smarx
-
不,这不是 CORS 的工作方式。 CORS 是浏览器实现的限制。它不会允许你的 JavaScript 代码访问响应,除非服务器发送适当的标头允许它。
标签: javascript java angularjs http-headers xmlhttprequest