如何在服务器端Blazor中使用Bing Javascript映射?
我正在尝试在新的(3.0.0-preview6.19307.2)中使用。我已经在Blazor的早期版本和客户端应用程序中使用过这种方法 不建议需要任何新步骤,但当我在\u Hosts.cshtml的主体中添加以下部分并调用createMap函数时,我会得到一个错误,即 Microsoft.AspNetCore.Components.Browser.Rendering.RemoteRenderer: 警告:未处理的异常呈现组件:“Microsoft”不可用 明确的 ReferenceError:Windows.createMap()中未定义“Microsoft”如何在服务器端Blazor中使用Bing Javascript映射?,javascript,bing-maps,blazor,blazor-server-side,Javascript,Bing Maps,Blazor,Blazor Server Side,我正在尝试在新的(3.0.0-preview6.19307.2)中使用。我已经在Blazor的早期版本和客户端应用程序中使用过这种方法 不建议需要任何新步骤,但当我在\u Hosts.cshtml的主体中添加以下部分并调用createMap函数时,我会得到一个错误,即 Microsoft.AspNetCore.Components.Browser.Rendering.RemoteRenderer: 警告:未处理的异常呈现组件:“Microsoft”不可用 明确的 ReferenceError:W
var-map=null;
window.createMap=(数据)=>{
if(map!=null)
返回;
map=new Microsoft.Maps.map(“#myMap”,
{
凭据:“…我的凭据…”,
缩放:1
}
);
Microsoft.Maps.loadModule('Microsoft.Maps.HeatMap');
返回;
};
如果将此代码放在客户机大小相同的Blazor项目的index.html中,那么它确实可以正常工作,因此我猜需要执行一些额外的步骤才能将地图导出到Microsoft名称空间。有人能告诉我我遗漏了什么吗?在Magoo先生的帮助下回答我自己的问题
在这种特殊情况下,答案似乎是Blazore服务器端模型需要HTTPS(不是HTTP)连接到bing maps控件。您可以尝试将引用库的脚本标记放在文档的头部-我在这里猜测,因为您尚未指定它当前所在的位置。谢谢-它当前在正文中,但我也在头部尝试过,并得到了相同的错误。因此,当页面加载后,能否检查浏览器控制台是否存在错误?如果您开始键入“window.Mic”,请在浏览器控制台中检查Microsoft是否出现在自动完成中?实际上-考虑到错误-您正在代码中的某个位置调用“createMap”-在哪里?实际上检查浏览器控制台是一个很好的建议,并显示了此警告。。。“SEC7111:[混合内容]源“”已在安全上下文中加载,但尝试在“.”处加载不安全的脚本资源。“将bing.com的脚本源从http更改为httpS解决了此问题,现在映射已正确呈现!
<script type="text/javascript" src="http://www.bing.com/api/maps/mapcontrol"></script>
<script>
var map = null;
window.createMap = (data) => {
if (map != null)
return;
map = new Microsoft.Maps.Map('#myMap',
{
credentials: '... my credentials ...',
zoom: 1
}
);
Microsoft.Maps.loadModule('Microsoft.Maps.HeatMap');
return ;
};
</script>