You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo应用无法访问WSL中Docker部署的本地API,Ping与Postman却正常

Expo应用无法访问WSL Docker内的本地API服务器(Network Request Failed)

问题现象

  • 本地API服务器部署在WSL的Docker容器中,WSL内的AngularJS客户端、Windows端Postman、常规ping操作均能正常访问该服务器
  • WSL环境中运行的Expo应用发起API请求时,持续出现「Network Request Failed」错误

已完成的排查与尝试

  • 已将Expo请求中的「localhost」替换为服务器的IPv4地址(http://172.18.114.140:80/api/),并通过Postman、telnet验证了该IP地址及端口的可达性
  • Expo的API请求URI、请求体与Postman完全一致,核心代码如下:
    // constants.js
    export const API_URL = "http://172.18.114.140:80/api/";
    
    import { API_URL } from "../util/constants";
    
    // 连接本地后端获取Token
    async function getToken(username, password) {
      try {
        const headers = new Headers();
        headers.set('Content-Type', 'multipart/form-data');
       
        const response = await fetch(API_URL + "login/", {
          method: 'POST',
          headers: headers,
          body: { "username": username, "password": password }
        });
        console.log("response 1" ,response);
        const result = await response.json();
        return result;
      }
      catch (error) {
        console.log("getToken: ", error.message)
      }
    }
    
    // ...
    
    const { token: devToken } = await getToken("username", "password")
    
  • 对比Postman的请求,仅Postman多了9个自动生成的请求头,判断这不会影响Expo与API的连通性

端口转发遇到的问题

  • 尝试通过VS Code进行WSL端口转发,以便Expo应用能正常发起请求,但当前Windows环境下的VS Code端口转发视图没有「Visibility」列,无法将端口设置为公开
  • 参考Mac环境的操作经验,推测需要通过GitHub凭证认证才能显示「Visibility」列,但多次尝试触发SSO认证均未成功(包括手动添加端口),而Mac环境下可正常完成认证、修改端口可见性及转发操作

内容的提问来源于stack exchange,提问作者trash_clam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:55:59