微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有一个问题,我不知道如何绕过。我正在使用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 举报,一经查实,本站将立刻删除。