web跨域问题(No 'Access-Control-Allow-Origin'..)

1. 问题

angular开发中连接java服务时出现跨域问题(No 'Access-Control-Allow-Origin'..)。

如下图

解决方法

2,原因分析
这个与安全机制有关,默认情况下是不允许跨域调用的。

3,问题解决
如果服务端是 JAVA 开发的,添加如下设置允许跨域即可。
1
response.setHeader("Access-Control-Allow-Origin", "*");
添加位置可以在下面三处任选一个。
(1)可以在过滤器 filter 中的 dofilter() 方法设置。
(2)可以在 servlet 的 get 或者 post 方法里面设置。
(3)可以放在访问的 jsp 页面第一行。
原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_1337.html

另外,参考了以下网站:

①★【解説付き】chromeでXMLHttpRequestをローカルのファイルで行う方法: https://qiita.com/growsic/items/a919a7e2a665557d9cf4  ★★★★★

②JAVA - 解决AJAX无法跨域问题(No 'Access-Control-Allow-Origin'..): http://www.hangge.com/blog/cache/detail_1337.html  ★★★

③Angular2/Angular4のHTTPでPOSTリクエストのCORS問題を解決する: https://qiita.com/kd9951/items/fc87782b65ab0b407b29

④オリジン間リソース共有 (CORS): https://developer.mozilla.org/ja/docs/Web/HTTP/HTTP_access_control

最终,代码级的解决方法没有完成,是按照参考网站①,用下面的方法强制连接到java。

  chrome.exe --disable-web-security --user-data-dir

代码级的解决方法先放着。

另,好像Chrome CORS plugin也可以达到强制连接的目的。

原文地址:https://www.cnblogs.com/nliao/p/8325923.html