我正在尝试使用 paypal 实现登录,我有 2 个不同的主机域
1- www.example.com
2- www.example.de
对于 paypal,我需要为此目的选择一个返回 URL,我选择了 www.example.com/callbackfrompaypal
所以在我的 callbackfrompaypal
if (!redirectUrl.Host.Equals(_dependencies.HttpRequestContextService.Request.Url.Host, StringComparison.OrdinalIgnoreCase)) //return back orginal domain
{
return View(redirectUrl); //If uri host is different than user's host turn back to user's host
}
redirect Url 是用返回域创建的URI[查询参数,可以得到原始主机]
所以如果用户从 www.example.de 进入并尝试登录,paypal 会像那样给我回电话
www.example.com/callbackfrompaypal?redirectUrl=www.example.de
然后我比较重定向 URL 和当前 URL,如果它们不相同,我将重定向
www.example.de/callbackfrompaypal?redirectUrl=www.asdasd.de
但它将在 POP UP 中完成,正如你们猜测的那样,BROWSERS 告诉我 Blocked a frame with origin "https://www.example.com "from accessing a frame with origin"https://www.example.de "
你们能告诉我如何解决这个问题吗
最佳答案
这是一项安全措施,您真的不能使用 Javascript 访问包含来自不同站点的内容的框架,那将是一个巨大的安全漏洞。
如果你想这样做,你必须在使用 paypal 之前重新加载你的 .com 域上的页面,否则你需要在你的服务器上存储信息,然后重定向到 < strong>.com 域,但我建议您使用第一个选项。
关于c# - 弹出 - 阻止了带有来源的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25863521/