如何解决如何从收件人以外的其他地方发布消息?
我有一个问题,我不知道如何绕过。我正在使用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 举报,一经查实,本站将立刻删除。