V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
donglongfei2008
V2EX  ›  程序员

微信小程序 webview 加载第三方网页,第三方的域名根目录无法配置微信的校验文件,这个有解吗?

  •  
  •   donglongfei2008 · 37 天前 · 1486 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个是不是必须通过配置微信校验文件然后小程序后台添加业务域名的方式解决?要是自己的域名可以随便加,但合作方是银行,这种人家根本不配合你搞这些东西,还有如果加载百度的某个页面,那岂不是也要在 baidu.com 的根目录放置校验文件才可以?兄弟们,还有其它的解决方法吗?

    10 条回复    2024-10-23 09:44:55 +08:00
    yjfkk
        1
    yjfkk  
       37 天前
    没有
    shadowyue
        2
    shadowyue  
       37 天前
    配个 nginx 服务,用自己域名去代理访问。可以试试这个方案。
    xuexingwei
        3
    xuexingwei  
       37 天前
    无解
    X0V0X
        4
    X0V0X  
       37 天前 via iPhone
    代理,我就是代理了高德地图
    mixuxin
        5
    mixuxin  
       37 天前
    @X0V0X 觉得可行,技术无壁垒
    wenber
        6
    wenber  
       37 天前
    server {
    listen 8778;
    server_name ltzf.agribigdata.com.cn;

    #charset koi8-r;
    #access_log /var/log/nginx/host.access.log main;
    # iframe 跨域问题
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_hide_header X-Frame-Options;
    add_header X-Frame-Options ALLOWALL;
    add_header Access-Control-Allow-Origin *; # 必须要有
    add_header Access-Control-Allow-Headers *; # 必须要有

    #location / {
    # root /usr/share/nginx/ltzf;
    # index index.html index.htm;
    #}
    location =/4nzqVbVMLP.txt {
    root /usr/share/nginx/ltzf;
    index 4nzqVbVMLP.txt;
    }
    location ^~/ {
    proxy_set_header Accept-Encoding "";
    proxy_set_header Referer "https://h5.aicloudav.com/";
    proxy_pass https://h5.aicloudav.com/;

    add_header Access-Control-Allow-Origin *;
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root /usr/share/nginx/nxh5cj;
    }
    }
    isSamle
        7
    isSamle  
       36 天前
    Nginx 代理啊,一个 Nginx ,配 N 个子路由,每个子路由下面代理不同的服务
    donglongfei2008
        8
    donglongfei2008  
    OP
       36 天前
    @X0V0X 你是 webview 加载了高德地图是吗?准确的说是通过 webview 加载自己服务器下的某个页面,然后这个页面实际是被 nginx 转发到了高德的页面对吗?
    @wenber @X0V0X @isSamle 几位兄弟都有成功的案例是吧?小程序这块限制的太严格了
    X0V0X
        9
    X0V0X  
       36 天前
    @donglongfei2008

    location ^~ /xxxx/map/ {
    add_header Access-Control-Allow-Origin * always;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Methods "GET, POST, PUT, OPTIONS";
    if ($request_method = 'OPTIONS') {
    return 204;
    }
    proxy_pass https://m.amap.com/;
    proxy_redirect off;
    proxy_set_header Host 'm.amap.com';
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header User-Agent $http_user_agent;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_buffer_size 256k;
    proxy_buffers 4 256k;
    proxy_read_timeout 600s;
    proxy_send_timeout 300s;
    proxy_temp_file_write_size 256k;
    }
    donglongfei2008
        10
    donglongfei2008  
    OP
       36 天前
    @X0V0X 它的实现原理是不是这样?
    1.小程序通过 webview 加载自己可控的业务域名下的某个页面,前提自己的域名根目录下已配置校验文件
    2.加载自己域名下的页面时,通过 nginx 的代理转发机制重定向到第三方页面
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5533 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.