扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
现在开发网站至少都是MVC规范级别,比如比如我们帮红网开发Discuz某些模块,是基于Discuz的插件API进行,比如说直播插件,插件名为muquan_zhibo,习惯性的我们的入口可以设为muquan_zhibo.inc.php,然后各个子模块在module中,通过入口文件调用。为了规范我们可以在入口中规定子模块有且仅有包含index(插件首页)、list(列表页面)、view(直播内页)、post(发布及修改页面)、ajax(ajax异步处理模块)等,而访问不在规定范围内的模块名称会直接调用默认的模块(index)。
特别在移动端,很多操作都是异步的,也就是说,很多地方都需要请求到ajax模块。比如plugin.php?id=muquan_zhibo&mod=ajax&op=pay&inajax=1&tid=1,有个小伙伴说,有个请求发生异常。结果开发同学一看原来是请求路径错误,本来请求到ajax模块对应的子模块,却请求到了默认模块去了。
结果一看上面的请求路径变成了plugin.php?id=muquan_zhibo&mod=ajax&op=pay&inajax=1&tid=1,也就是说&变成&。于是乎mod就变成了一个无效值,因此也就变成了请求默认模块了。
原因就是在这个地方开发的同学一不小心用了双引号,导致这样的结果。实际上好起来很简单,只需要把赋值请求路径地方的双引号改成单引号即可,当然也可以通过转码的方式来解决。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流