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