url后面没有斜杠,也没有文件名,POST不跳转直接返回,怎么实现
php吧
全部回复
仅看楼主
level 3
siyun_z
楼主
2021年02月01日 15点02分
1
level 7
gmy906100
上面一堆答非所问。
这种叫URL路由,
通过URL解析出来,
可以通过NGINX代理时候处理参数,
也可以直接使用框架进行参数处理。
2021年02月02日 07点02分
5
level 7
gmy906100
这个是用webman框架开发的API接口。
通过路由参数绑定请求URL映射去对应的类和方法。
url发送请求后就会自动调用对应的方法,。
这种类型的一般都是API接口开发使用到的,甚至有些是走reset api规范的。
常规框架的就是靠nginx把404的请求目录转发给/index.php?进行处理,然后index.php根据参数进行后续操作。
2021年02月02日 07点02分
6
siyun_z
谢了兄弟。新手学习中遇到这个不明白怎么实现的。我用的apache。基础不行不太懂,还是先用带/的吧。
2021年02月02日 08点02分
gmy906100
@siyun_z
apache就用rewrite也可以实现,核心知识就是把请求重定向到PHP入口文件,PHP入口文件根据URL目录来进行解析处理。但是这里的重定向仅仅是APACHE/NGINX/IIS 把后端业务请求重定向,并非http 的301/302.别搞混了
2021年02月02日 09点02分
siyun_z
@gmy906100
是的301的重定向我试过,等于两次请求,POST也取不到。你说的我了解一下。谢谢
2021年02月02日 10点02分
php6年ლ
@siyun_z
小心被一些菜鸟误导哦
2021年02月02日 11点02分
level 3
siyun_z
楼主
都是热心的网友
,讨论问题而已都不要纠结
2021年02月02日 13点02分
9
level 7
gmy906100
@php4年
楼二删了不影响,我喷的就是你们两。
1、审题都不会审你和我说4年经验?搬砖4年吗?
问题是:请求地址没有后缀文件名,POST后返回200,如何实现。
你的说法是多看JS。
这个和JS有毛关系,你还提及到AJAX,AJAX是通过xhr发送请求头,和页面跳转提交的最大区别就是不进行跳转。但这和问题有半毛钱关系吗?如果这个接口没做csrf验证,你可以尝试下自己写个form提交过去,看看结果是否一样?再不是你直接上个postman去验证啊。
2、伪静态
你的答案从ajax变成伪静态实现,你知道什么事伪静态吗?不是看看手册百度下回来就行的,自己功底不行的话建议你沉住气去学习,而非在此无理取闹。
伪静态 是利用NGINX/APACHE/IIS 的重写/反代形式,把请求重定向到程序入口页面。
通过这种方式行程相对友好的URL,已达到方便记忆和针对搜索引擎友好化。
重点是:通过请求重定向/反代的形式 达到 伪静态的功能。结合题主的问题,是如何实现,你扯到去伪静态,你还不如直接说程序实现?
3、不跳转只是用了个exit而已
exit/die 并非影响跳转,影响的只是业务执行流程。
不进行跳转的原因,你需要补习下你自己提及到的 路由/映射/重定向 这些知识点,
按照你8L的说法,
“就是访问了index.php,然后对应的路由解析到控制器,方法。得看框架模式,还有路由是否有做映射哦。不跳转只是用了个exit而已”
既然都重定向到index.php,除非业务流程需要,才会通过header进行跳转,否则你exit条毛咩。。。
最后,搞技术要沉得住气,我为何如此偏激说你和2L(已删帖)的那位,就是因为你们“识小小办代表”,
结合上述你的回答,你觉得你建议楼主多看JS -> ajax -> 不跳转exit -> 框架路由控制器 不是在误导别人吗?
而且,如果你觉得我的回答哪里错了,请列举出我说错的知识点,而非 一个傻雕搬地在喷,你这样和泼妇骂街有什么区别呢?
给你的小小建议,你要不检讨下这PHP四年的经验,究竟学习了什么?我看你和2L都接私单,你们真的坑一个算一个.....没那个能力,就好好学习,技术是靠沉积回来的,你可以有脾气,但是必须有才华作为支撑,否则什么都没有的话,就会很像现在这样很难看,最终
小丑
只是你自己。
2021年02月03日 09点02分
12
gmy906100
@php4年 没@到你,现在补上
2021年02月03日 10点02分
level 7
gmy906100
漏了看你最后的观点
“没有做伪静态是带.php的哦,首先要考虑去掉.php,所以要做伪静态,其次才是路由”
1、没有做伪静态是带.PHP
你接触过内存常驻型的开发吗?swoole,workman,这些,使用常驻型开发出来的接口是叫伪静态吗?您真能掰
2、首先要考虑去掉.php,所以要做伪静态,其次才是路由
你要补充知识点,伪静态是通过url重写和路由解析来实现的,而并非通过URL重写和路由解析实现的都叫伪静态。
然后你10L的谬论:
“首先他是访问index.php文件,所以要路由重写,然后就是他是接口模式,还需要前端的ajax”
是经过路由重写后才重定向去index.php,而且这个不一定就是index.php,严谨的说法是入口文件。
为什么接口模式就必须前端AJAX呢?
先不说ajax是jquery封装xhr请求实现的,你写过小程序吗?(wx|tt|uni).request这个你也认为是ajax吗?
还有微信开发者文档和阿里开发者文档甚至其他聚合api接口文档这些你看过吗?全都靠前端对接吗?就没有php通过CURL形式进行对接的接口吗?为什么接口一定要ajax呢?
2021年02月03日 10点02分
13
level 11
php6年ლ
我掰不过你,你教他,行不行
2021年02月03日 10点02分
17
level 3
siyun_z
楼主
谢谢两个兄弟。虽然我的基础不好还是不能完全理解。。
2021年02月03日 11点02分
18
php6年ლ
教你了,被楼上喷子a了,喷我
2021年05月18日 06点05分
level 3
siyun_z
楼主
是伪静态。查了好久搞定了。新手没办法。。谢了。。
在httpd.conf 中设置的,据说在.htaccess中影响效率。
<Directory D:/phpstudy_pro/WWW>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
</Directory>
2021年02月15日 21点02分
20
php6年ლ
我们教你,被楼上狗喷了,还a我了啊,你自己看看
2021年05月18日 06点05分
level 1
Yo白茶
我遇到了同样的问题,给的接口最后面没有斜杠,post收不到数据,postman加上斜杠就收到数据了,这怎么搞
2021年05月17日 09点05分
21
1