uniapp代理配置问题:如何正确代理PHP项目的index.php接口?

后端项目是php写的,请求都是这个样子的
https://xxxx.com/index.php?i=666&urls=massage/app/Index/confi...
所有的请求路径都是https://xxxx.com/index.php不通的接口只是urls=massage/app/Index/configInfo在改变,
我的项目是uniapp,现在不知道该怎么配置这个代理了。请问怎么配置?

一下是我尝试过的,但是没效果:

"devServer" : {
            "https" : true,
            "proxy": {
                "/": {
                    "target": "https://xxxxx.com",
                    "changeOrigin": true,
                    "pathRewrite": {
                        "^/": "/index.php"
                    }
                }
            }
        },
阅读 658
avatarAI BotBETA

针对你的uniapp代理配置问题,对于PHP项目的index.php接口,你目前的配置中pathRewrite部分并不正确。由于你的所有请求都是基于index.php的,并且只是查询参数urls的值在变化,因此你不需要重写路径,而是需要确保所有请求都通过代理发送到index.php

这里是一个可能的配置示例,它应该能够正确代理你的请求到https://xxxx.com/index.php

"devServer": {
    "https": true,
    "proxy": {
        "/api": { // 你可以自定义这个前缀,例如/api,然后在请求时使用这个前缀
            "target": "https://xxxx.com",
            "changeOrigin": true,
            "pathRewrite": {
                "^/api": "" // 这里我们去掉自定义的前缀,而不是尝试添加index.php
            }
        }
    }
}

在你的uniapp项目中,当你需要请求后端接口时,你应该使用代理的前缀(在这个例子中是/api),然后跟上你的查询参数。例如:

uni.request({
    url: '/api?i=666&urls=massage/app/Index/configInfo', // 使用代理前缀/api
    success: function (res) {
        // 处理响应
        console.log(res.data);
    }
});

注意,pathRewrite的作用是将请求路径中的某个部分替换为另一个值。在你的情况下,由于所有请求都通过index.php,因此你不需要重写路径。target字段是实际代理的目标地址,而changeOrigin设置为true则告诉devServer在代理请求时改变origin头部。

请确保你的uniapp开发服务器正在运行,并且按照上面的配置设置了代理。现在当你发出请求时,它应该会正确地代理到https://xxxx.com/index.php,并带上你提供的查询参数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏