【问题标题】:Cross-Domain requests with Javascript or Java使用 Javascript 或 Java 的跨域请求
【发布时间】:2018-06-29 21:34:42
【问题描述】:

我需要在 iframe 或类似的东西中加载页面,但是,此页面重定向到另一个域中的登录页面,然后,我有一个跨域错误!

错误类似于:

Failed to load https://otherdomain.com/159HBR321: Redirect from 
'https://otherdomain.com/159HBR321' to 
'https://thirddomain.com/home/login'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
header is present on the requested resource. Origin 'null' is
therefore not allowed access.

我尝试了类似的方法:

$(function(){
  $("#divId").load("https://otherdomain.com/159HBR321"); 
});
...
<div id="divId" style="display:none;"></div>

并尝试使用 iframe:

<iframe src="https://otherdomain.com/159HBR321"></iframe>

我有一个Java项目,所以我可以用Java或JS(JQuery等)解决这个问题。

但没有成功。只是观察一下,我无法更改其他域服务器上的任何内容。

关于如何解决这个问题的任何线索?提前致谢。

【问题讨论】:

标签: javascript java jquery cross-domain


【解决方案1】:

您的浏览器正在执行该规则,它不应该允许您违反它。 CORS 背后的想法是防止恶意代码从合法应用中获取凭据,然后访问服务器。

服务器必须发送跨域标头。如果其他域不这样做,那么您的浏览器将不允许您访问它。

有些浏览器插件会出于开发目的添加标头,但它们的功能有限,并且在打开浏览器时会降低浏览器的安全性。如果其他人正在使用您的应用,它们当然不是一种选择。

唯一好的解决方案是与其他域合作,将您的域列入白名单。

【讨论】:

  • 我明白了。这是我害怕的。不幸的是,与其他域一起工作不是一种选择。也许我们需要忘记这个想法,转而使用另一个想法。
  • 是的,听起来其他域不想充当身份验证服务。顺便说一句,你能“接受”我的回答吗?
猜你喜欢
  • 2016-08-14
  • 2019-04-02
  • 1970-01-01
  • 2011-05-26
  • 2012-02-26
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
相关资源
最近更新 更多