如何从收件人以外的其他地方发布消息?

问题描述

我有一个问题,我不知道如何绕过。我正在使用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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...