uni-app 跨域配置无法删除已有域名

发布于 1周前 作者 eggper 来自 Uni-App

uni-app 跨域配置无法删除已有域名

操作步骤:

1-在前端网页托管设置域名
2-跨越设置中添加域名
3-删除前端网页托管中的域名,重新添加一次
4-删除跨越设置中已有域名

预期结果:

在跨域设置中删除原来设置的域名

实际结果:

提示安全域名不存在

bug描述:

在跨域配置中无法删除已有的域名

2 回复

是删除带*通配符的这个域名吗?可以重试下


在uni-app项目中处理跨域问题时,通常会配置manifest.json文件中的mp-weixin(或其他平台配置)下的request域名单,以确保你的应用能够向指定的服务器发送请求。然而,如果你遇到无法删除已有域名的情况,可能是由于配置文件的格式错误或者缓存问题。以下是一个检查和修改配置的方法,以及确保配置生效的代码示例。

步骤 1: 检查和修改 manifest.json

首先,确保你的manifest.json文件中的跨域配置是正确的。以下是一个示例配置,其中包含了如何设置和(理论上)删除域名的步骤:

{
  "mp-weixin": { // 针对微信小程序的配置
    "appid": "your-app-id",
    "setting": {
      "requestDomain": [ // 请求域名白名单
        "https://example.com", // 想要保留的域名
        // "https://unwanted-domain.com" // 想要删除的域名,直接注释或删除此行
      ]
    }
  }
}

在这个例子中,如果你想要删除https://unwanted-domain.com这个域名,只需将其从数组中移除或注释掉即可。

步骤 2: 清除缓存并重新编译

修改配置文件后,确保清除项目的缓存并重新编译,以避免旧配置的影响。在uni-app中,你可以通过以下命令来清理和重建项目:

# 停止正在运行的项目(如果有的话)
npm run dev:mp-weixin -- --stop

# 清理项目(可选,但推荐)
npm run clean

# 重新编译项目
npm run dev:mp-weixin

步骤 3: 验证配置

启动项目后,尝试发送一个请求到之前想要删除的域名,看是否还会出现跨域问题。如果请求失败,并且错误信息表明该域名不在白名单中,那么说明配置已成功更新。

示例请求代码

以下是一个使用uni.request发送GET请求的示例代码,用于验证配置是否生效:

uni.request({
    url: 'https://example.com/api/data', // 替换为你要请求的URL
    method: 'GET',
    success: (res) => {
        console.log('请求成功', res.data);
    },
    fail: (err) => {
        console.error('请求失败', err);
    }
});

如果请求成功,说明跨域配置已正确应用;如果请求失败且报错与跨域相关,再次检查manifest.json的配置以及是否彻底清除了缓存。希望这些信息能帮助你解决uni-app跨域配置的问题。

回到顶部