UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)

这篇具有很好参考价值的文章主要介绍了UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • UniApp 运行到浏览器的时候,接口会跨域报错,这里通过两种方式解决,第一:修改Uniapp自带的manifest.json 源码视图并进行配置h5设置。第二:在项目根目录新建vue.config.js并配置代理。 二选一即可。

  • 修改或调整配置文件后,推荐重新运行,以防不生效。

  • 配置完成后,请求接口显示 Please enable JavaScript to continue. 的话,可以试试重启编辑器(尤其是 HBuilderX),再重新运行项目,如果还是不行就另外查查解决方案吧,网上有很多。

一、方式一:修改 manifest.json 文件

在 UniApp 也有类似配置的地方:找到 manifest.json -》源码视图,添加 h5 配置项:

"h5" : {
    "devServer" : {
        "disableHostCheck" : true,
        "proxy" : {
            "/api" : {
                "target" : "http://www.dzm.com",
                "changeOrigin" : true,
                "secure" : false,
                "ws": false,
                "pathRewrite" : {
                    "^/api" : ""
                }
            }
        }
    }
}

uniapp h5代理,javascript,vue.js,uni-app

二、方式二:添加 vue.config.js 文件

  • UniApp 会识别 vue.config.js 文件,但是 manifest.json 的优先级
    要高于 vue.config.js 文件,所以看需求选择一个配置即可。

  • 像 vue 开发一样,手动创建一个 vue.config.js 文件,然后添加上代理,vue.config.js 只能创建在项目的根目录,不然会无法识别到。

module.exports = {
    devServer: {
        disableHostCheck: true,
        proxy: {
            '/api': {
                target: 'http://www.dzm.com',
                changeOrigin: true,
                secure: false,
                ws: false,
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    }
}

三、使用

简单使用

// 请求对象
uni.request({
    url: '/api' + '/mobile/user/userinfo',
    method: 'GET',
    data: {},
    header: {
        'X-Token': uni.getStorageSync('token')
    },
    success: (res) => {
        // 请求成功
        console.log(res)
    },
    fail: (err) => {
        // 请求失败
        console.log(err)
    }
})

封装成请求对象 request.js文章来源地址https://www.toymoban.com/news/detail-792765.html

// 接口域名
// #ifdef H5
const BaseHost = '/api'
// #endif
// #ifndef H5
const BaseHost = 'http://www.dzm.com'
// #endif
// 请求封装
export default function ({
    // 请求域名
    host = BaseHost,
    // 请求地址
    url,
    // 请求方式
    method,
    // 请求数据
    data = {},
    // 请求头
    header = {}
}) {
    // 官方请求文档(可查阅传参)https://uniapp.dcloud.io/api/request/request.html
    // 转为 Promise 结构
    return new Promise((resolve, reject) => {
        // 请求对象
        uni.request({
            url: host + url,
            method,
            data,
            header: Object.assign({
                // 默认请求头
                'X-Token': uni.getStorageSync('token')
            }, header),
            success: (res) => {
                // 可以在这里进行成功的公共处理
                resolve(res)
            },
            fail: (err) => {
                // 可以在这里进行失败的公共处理
                reject(err)
            }
        })
    })
}

到了这里,关于UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue.config.js使用代理配置真实请求url

    前端请求接口过程中会统一配置代理请求url,配置之后浏览器只能看到local host路径。 为方便查看请求的真实ip,需要在vue.config.js中做如下配置,便能在浏览器实时查看到真实地址 配置完重启,效果如下:

    2024年02月13日
    浏览(35)
  • vue.config.js 跨域配置

    一般是配置 .env .env.production 等。 默认配置就是用 .env 示例: 为啥要封装,因为开发模式需要proxy代理。。而线上模式不需要。 /dev-api 只要不和web里的path 冲突就行,也可以取其他名字。 开发模式 就是web的路径,再加个特殊的path 用作代理。 其他模式 不需要proxy配置,直接走

    2024年02月11日
    浏览(23)
  • uniapp 跨域配置代理

    本文介绍vue3版本浏览器运行跨域配置代理设置,但是需要考虑别的端运行情况, 需要特别注意 。 第一步:项目根目录新建vite.config.js文件 具体配置详见 第二步:vite.config.js文件中写入如下配置 重要代码如下 必须引入uni,否则会提示未引入vue,安装vue之后App.vue文件报错,错

    2024年02月14日
    浏览(13)
  • uniapp的manifest.json配置后,支付宝小程序include不生效,map高级渲染

                    支付宝小程序在使用map组件时,使用高级渲染需要使用xml组件,在                  manifest.json下配置include字段,编译完没有该字段,不生效。                                                          这里是支付宝文档:支付宝官

    2024年02月07日
    浏览(23)
  • vue中vite.config.js配置跨域以及环境配置详解

    我们的 .env.development 和 .env.production 文件里面都会有 VITE_APP_ENV 配置: 在我们的 vite.config.js文件中: 以上是 vite.config.js 的配置,上面展示了在不同环境下去请求对应环境的域名并且配置代理进行跨域. 1.在vue.config.js中设置一下代码: 2. 创建axioss实例时,将baseUrl设置为 \\\'/api\\\'

    2024年02月15日
    浏览(26)
  • vue.config.js 配置proxy代理

    方案一: 配置文件 文件内容 三个文件分别是三个不同环境使用的,如线上,线上测试,本地测试。我在本地测试时三个文件都配置成了一样。  vue.config.js 配置文件 问题: 控制台显示 400 (Bad Request)或404等问题都是 vue.config.js 配置文件 的 proxy 的配置问题。 主要检查点

    2024年03月15日
    浏览(23)
  • Vite 配置代理 Proxy,Vue配置代理,解决前端跨域

    我们在做项目的时候经常会遇到跨域的问题,之所以会出现跨域问题是因为浏览器的同源策略,即协议、域名、端口需要一致,才可以访问服务端的资源。当一个请求地址(服务端的地址)的协议、域名、端口三者之间任意一个与当前页面地址(前端页面地址)不同即为跨域

    2024年02月17日
    浏览(30)
  • 在uniapp Vue3版本中如何解决web/H5网页浏览器跨域的问题

    uniapp项目在浏览器运行,有可能调用某些接口会出现跨域问题,报错如下图所示: 存在跨域问题的原因是因为浏览器的同源策略,也就是说前端无法直接发起跨域请求。同源策略是一个基础的安全策略,但是这也会给uniapp/Vue开发者在部署时带来一定的麻烦。一般来说,浏览

    2024年01月21日
    浏览(28)
  • HBuilderX修改manifest.json设置,解决跨域问题(CORS、Cross-Origin)

    搭建一个前台uniapp,后台springboot的开发环境时,遇到了跨域问题。 console提示错误信息: Access to XMLHttpRequest at \\\'http://10.0.180.203/api/cms/getAdList?apId=1\\\' from origin \\\'http://localhost:8080\\\' has been blocked by CORS policy: Response to preflight request doesn\\\'t pass access control check: No \\\'Access-Control-Allow-Origin\\\'

    2024年02月10日
    浏览(25)
  • 【vue】uniapp vue3 vite代理设置问题【H5 微信小程序】

    基于vue3版本的uniapp运行h5和微信小程序 uniapp运行h5请求接口成功,运行微信小程序请求接口不成功 vite.config.ts配置proxy .env配置请求接口域名 request.ts 请求接口文件 微信小程序识别不了代理的配置 需要判断当前是h5还是微信小程序端,对请求接口文件进行修改,其他文件不修

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包