当使用IP通过Http.GetStringAsync通过IP通过Http.GetStringAsync访问Blazor WebAssembly和“本地模式”中的Azure函数时,出现“无法提取错误”

问题描述 投票:0回答:2

我正在使用以下方法开发本地开发配置:

  • 通过Visual Studio中的本地func模拟器通过Azure功能>>
  • 通过Blazor WebAssembly]访问(通过本地IIS Express)。
  • [目标是在本地开发人员配置中使用Azure功能模拟器开发WebAssembly应用程序,而不必每次都发布Azure进行测试...

    [当我尝试使用http.GetStringAsync()方法从blazor应用程序访问伪函数时,通过IP地址访问func模拟器时,我遇到了一个问题,例如以下说明:

  1. 当使用类似localhost的方式从blazor应用程序调用时>

    Http.GetStringAsync(“ http://localhost:7071/api/HelloEcho”)=>本地主机,它可以工作,我得到了响应

  2. [当使用本地地址或IP地址从Chrome或Edge客户端访问func api时,例如在浏览器中或从远程设备中键入此功能:

      http://localhost:7071/api/HelloEcho    => it works 
    
      http://xxx.xxx.xxx.xxx:7071/api/HelloEcho    => remote, it works 
    
      (I even try taping it "http://xxx.xxx.xxx.xxx:7071/api/HelloEcho" 
       in a safari browser on my phone connected on the same network ==> it works , I get a response)
    
  3. 但是当我尝试访问它时,用它的IP代替本地主机从blazor应用程序

    这样Http.GetStringAsync(“ http://xxx.xxx.xxx.xxx:7071/api/HelloEcho”)=>我收到一条错误消息
  4. WebAssembly.JSException:类型错误:无法在System.Net.Http.WebAssemblyHttpHandler.doFetch中获取

    [我可能会错过一些东西...但是...如果它在浏览器中有效,为什么不在应用程序中使用http.Get?我该怎么做才能使其正常工作?

    NB:在功能主机中,为CORS添加了参数:“ *”Visual Studio版本16.6.0预览版6.0Azure Functions核心工具(3.0.2534提交哈希:bc1e9efa8fa78dd1a138dd1ac1ebef97aac8d78e)函数运行时版本:3.0.13353.0WebAssembly 3.2.0-rc1.20223.4

我正在使用以下本地开发配置:通过Visual Studio中的本地功能仿真器通过Azure功能通过Blazor WebAssembly访问(通过本地IIS Express)。目的是开发WebAssembly ...

要测试您不需要IIS的应用程序,可以同时使用ctrl + F5运行功能应用程序和blazor应用程序,它将很好地工作。我这样做了,还没有任何问题。您是否真的需要IIS,为什么?

混合内容错误在通过HTTPS加载页面时发生,但是您的异步​​请求尝试通过HTTP进行通信。这被认为是security risk

要解决此问题,您可以将两个资源都“升级”到HTTPS,也可以将两者都“降级”到HTTP。

而不是尝试为IP地址设置证书,使用HOSTS文件可以允许您创建测试dns条目,从而可以完全避免同时使用IP地址和端口号。

blazor webassembly
2个回答
0
投票

要测试您不需要IIS的应用程序,可以同时使用ctrl + F5运行功能应用程序和blazor应用程序,它将很好地工作。我这样做了,还没有任何问题。您是否真的需要IIS,为什么?


0
投票

混合内容错误在通过HTTPS加载页面时发生,但是您的异步​​请求尝试通过HTTP进行通信。这被认为是security risk

要解决此问题,您可以将两个资源都“升级”到HTTPS,也可以将两者都“降级”到HTTP。

© www.soinside.com 2019 - 2024. All rights reserved.