1
clww 2013-06-06 21:05:18 +08:00 1
两个方法,表单的那个从表单里取数据,ajax的从xhr里取数据,数据的validate和进一步处理都调同一个方法,应该不会有太多重复,结构上也更清晰一些吧
|
2
leojoy710 2013-06-06 21:06:07 +08:00 1
倾向于区别是否ajax返回不同东西...
|
3
yakczh 2013-06-06 21:44:17 +08:00 1
action 里面的view分为两种,一个是带模板的view,一种是jsonview ,如果在请求头里面检测到xhr,就启用,jsonView,如果action的view有指定view类型,就用指定类型的view方式,输出
if( $config['viewType']){ $viewType=$config['viewType']; }else { if( xrh){ $viewType=jsonView; }else { $viewType=TplView; } } |
6
Rabbit52 OP @yakczh 传统的方式提交,action里面可能验证过后就直接返回一个redirect了,不需要输出视图什么的,这样写感觉也不能兼顾所有~
|
7
yimity 2013-06-07 10:24:48 +08:00
ajax 提交的时候设定一个自定义的 header 就好了。
|
8
cutehalo 2013-06-07 10:28:10 +08:00
提交请求的时候加上一个参数 来判断是不是提交的ajax请求就行
|
9
dulao5 2013-06-07 10:40:07 +08:00
从REST角度看,
表单提交时 content-type是urlencode类型; AJAX提交时content-type是application/json之类的类型; 但操作的是同一个资源,提交的内容也是同样的东西(只是编码形式不同)。 所以,应该先将不同编码形式的内容,加工成一种统一形式。之后处理就是一样的了。 最后,Response的逻辑对象也是一致的,只是编码形式不同(html或json)。 理论上应该依赖accept-type 来决定Response的编码, 实际项目没必要追求到这个地步。 |