问题描述
我有一个问题,我不知道如何绕过。我正在使用Angular客户端应用程序和ASP.NET Core 2.2 Web API。 Basing on this example,在我的Web API控制器中,我需要调用一个视图并将模型传递给它,这可以正常工作:
(...)
else
{
TokenResponseViewModel response = GenerateResponse(user);
return View(response);
}
视图正在解析模型,并使用window.postMessage发送消息:
<body>
<script>
var accessToken = "@Model.Token";
var message = {};
if (accessToken) {
message.status = true;
message.token = '@Model.Token';
message.email = '@Model.Email';
message.refreshToken = '@Model.RefreshToken';
message.user = '@Model.User';
} else {
message.status = false;
}
console.log('posting message');
this.window.postMessage(JSON.stringify(message),"http://localhost:4200");
console.log('posted message');
</script>
</body>
这个想法是在我的Angular组件中激活handleMessage
:
this.externalProviderWindow = window.open(url,"ExternalProvider",params,false);
this.externalProviderWindow.addEventListener("message",this.handleMessage.bind(this),false);
}
private handleMessage(event: Event) {
(...)//process "message"
}
但是问题是我得到了:
无法在“ DOMWindow”上执行“ postMessage”: („ http:// localhost:4200“)提供了目标来源 („ http:// localhost:50962“)
原因是Web API控制器端点通过端口50962
返回视图,而Angular客户端应用程序通过端口4200
运行。而且我没办法解决这个问题。
我tried already this的结果相同。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)