@Servle接口跨域解决办法!
解决跨域导致的问题
1、CORS,跨域资源共享
这是最靠谱也是非常科学的解决方案,通过上面的截图我们可以看到,它提示了一个:从某某位置请求的资源被阻挡了,因为没有在响应头里发现:"Access-Control-Allow-Origin"的响应头。看到这个错误,我们不得不百度一下,这个Access-Control-Allow-Origin。
Access-Control-Allow-Origin
这个Access-Control-Allow-Origin是个什么呢?
通过Access-Control-Allow-Origin响应头,就告诉了浏览器。如果请求我的资源的页面是我这个响应头里记录了的"源",则不要拦截此响应,允许数据通行。
跨域不是问题是一种安全机制
跨域是浏览器加载了与当前域名、协议、端口不同另一站点下的资源,这与各大支持JavaScript的浏览器的同源策略是违背的。所谓同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。:
问题现象
我需要在我开发的扩展页面调用我再另一台服务器的接口:出现了跨域问题,项目又不是SPring类型是传统的互联网项目(手写原生js页面,巨丑),被来打开这个页面就应该展示出来查询的数据,遇到了跨域。
解决办法
页面前端调用接口
页面已经放到服务器上,这里放一个也是我写js调用这个同一个接口的调用方式比较原始
后端修改代码展示
后端代码就加了一行,如果后期有固定网址可以替换 *
主要后端代码展示
代码片
.
// An highlighted block
resp.setHeader("Access-Control-Allow-Origin", "*");
后来遇到过好几个项目这个跨服务器调用接口,我之后再写遇到跨域问题直接复用!!!
效果图
总结
解决方式还有更多各种各样的,但我认为我最熟练的莫过于这一种,出现问题,先去解决问题,做好问题记录,下次不再让问题困扰。