uno platform 中 WASM上显示跨域的图片 如何解决 简单的方式,谢谢

张中伟 80 信誉分
2025-04-08T02:25:31.2966667+00:00

如果我正常显示资源图片是没有问题的,但是我显示其它网站的图片,它就提示跨域报错。如果我自己写个API中转后,直接访问图片正常的。但是显示还是不正确。请问如何快速解决显示图片的问题。直接显示,或者用中转方法都可以。以下我中转后的代码。也不显示图片。

<Image

  Source="http://127.0.0.1:5555/abc.jpg"

      x:Name="img2"

  HorizontalAlignment="Stretch" 

     Height="100"/>

//我正常显示资源图片是没有问题的。
        <Image 
            Source="/Assets/avatar.png" 
            HorizontalAlignment="Stretch" 
               Height="100"/>


C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
225 个问题
0 个注释 无注释
{count} 票

2 个答案

排序依据: 非常有帮助
  1. 匿名
    2025-04-08T06:47:31.1433333+00:00

    你遇到的问题属于 跨域资源共享 (CORS) 限制,尤其是在访问其它网站图片资源时。简单来说:

    • 当你直接从 <Image Source="http://example.com/image.jpg" /> 加载图片,如果该站点没有正确设置 CORS 头(Access-Control-Allow-Origin),浏览器或运行时环境(比如 WPF、UWP、Xamarin)会阻止它被渲染。

    你需要确保你的中转 API 返回的是一个完整的图片响应,包括:

    1. 正确的 Content-Type
    2. 不要进行任何 HTML 包裹或转换
    3. 允许匿名访问(无需授权)
    4. 设置合适的缓存策略(可选)

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

  2. 张中伟 80 信誉分
    2025-04-08T06:57:07.9366667+00:00

    我现在使用webapi进行中转显示还是不行,看一下我代码是不是哪里有问题,你上面讲的我都知道。具体如何解决。代码如何写。谢谢。。 builder.Services.AddCors(opt =>

         {
    
             opt.AddPolicy("AllowAllOrigins",
    
                 builder =>
    
                 {
    
                     builder
    
                     .AllowAnyHeader()
    
                     .AllowAnyMethod()
    
                     .AllowAnyOrigin();
    
                 });
    
         }); 
    
         builder.Services.AddControllers();
    
         var app = builder.Build();
    
         app.UseCors("AllowAllOrigins");//跨域
    
    0 个注释 无注释

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。