后端说:只是你不懂怎么用 headers!

  1. 云栖社区>
  2. 前端那些事儿>
  3. 博客>
  4. 正文

后端说:只是你不懂怎么用 headers!

马铭芳 2018-07-12 17:30:09 浏览903
展开阅读全文

事情是这样的,上一个项目我们的后端提供的接口,一次性返回了所有数据给我,分页功能是前端自己完成的。

那么这次来的新项目,换了个后端,写了另外的接口,我做项目的时候,还是用的之前的前端分页组件,但是测试说前端的分页没有做?

于是乎,我就问后端,你返回给我的数据里面没有统计总数啊不能返回给我么?

fe6e06a7a3843ff0745ed986866da1a9ea8e65c7

这样的回答没毛病,毕竟全部一次性返回给我,sql 查询是挺费事的,不过这只不不过是一个 demo 系统,演示给客户看的,再说目前会有多少条数据,即便是百万条数据,mysql 的查询性能我想也不会很差,毕竟您不要做一下 sql 优化吗?

32a0dd27f2c24061c68257004c75f97d8584f79c

果然是高手,把分页数据 存在 response.header 里面了,顺便多说一句,我们这个是前后端分离的项目,因为存在 cros 跨域,所以,我这边获取 response.headers 只能获取以下的数据

4f2fdb2c13cd7673c07711a5a23f099409621366

并不能完全获取后端自定义的 response header 的所有数据,科普了一下原来是这样的

60759868b282f53a96e7b6262b351743720bb8a0

我问后端,你设置了吗,后端说不用设置啊,说另外一个同事可以取(据我说知另外一个同事使用的 swagger)你用 swagger 同一个端口、域名,存在跨域吗,我想问你?你还好意思让我用 swagger 测试你的接口,那 tm 当然不会存在跨域问题,当然可以在 response.headers 里面得到你的分页数据

a48a3ad3749446787428afd37af4315cfc4d19b2

你返回给我的是这样的数据,让我猜想一下,可能是用了统一的方法,你不好去改后端返回的数据,或则还是你比较懒。就 是不想把分页数据,通过正常 respone.text 传给我,还是你故意显示你的技术牛逼!存在 header 里面?

b69b4316a47e998ebd85c8c2fbb34c76a91d0a4b

呵呵,此时后端嘲讽我 『只是你不懂怎么用 header』

97c04533fd741a3781773eb21c2e81ef1a9fe951

问我是 js 么?我一个攻城狮,发送 ajax 请求,你问我是 js 么,还要教我,不好意思,这点尊严还是有的,既然你这么懂 header,那么我前端传递参,也把当前的页码,page 参数(后端需要的参数),存在 header 里面

5bf8efb5a65152856733543e3c5378b97121e088

其实本来应该放在 query string 里面的,你既然喜欢在 response.headers 存总页码,那就别怨我在 

request.headers 里面给你传递 page,毕竟我不懂 header~~~

顺便提一下,我存在 headers里面了,我测试分页,发现不管我点击哪个页面,后端返回的总是第一页的数据,那么我敢断定,后端取参数,肯定不是从 headers 里面取的 page

本来easy 的事情,你非要搞这么复杂,何必呢,跟我显摆什么呢。。。

=======================================================

今天又更新了,我们继续看热闹

8b15e3e61c5df0ad63e85c9aaed2a220135e1c8a

说到这里我就笑了,该后端说,他的 response.header 存放分页 数据 是 response 的一部分。是正常操作

我前端 用 request.headers 传递 页面 就是不符合 restful 规范了?

首先他说的这个 restful 规范,我就笑了,人家 restful 是一种风格而已,

退一步说,你后端传 response.headers 就可以,我前端 就不行了,不符合规范了?我看是你取不到页码了吧!!!

导致你的 query 语句一直取的默认为第一页的数据,辣鸡!

b0afab145ec5436688ea165c25f698f48f95b9b1

因为上个项目 是另外一个后端,做的也是一个 demo,一次性返回20多条数据给我,前端自己做的分页

跟这个人合作,第一次,我就问能不能一次性全部给我,不行就拉倒。现在借着这个话题跟我扯性能问题

请我一下现在做的这个 demo 就10几条数据,你跟我谈什么性能?你确定你真的懂 sql 性能,

说我态度有问题,你接口文档上有跟我说分页写在了reponse.header 里面?你接口文档上面有说要传递 page 参数么?

swagger 上面就 tm 一个 请求,一个 type,又告诉前端传递正确参数么?你返回的 response.headers 里面的分页数据又在哪里?

3a3981e517086f47d49bc5c9b92e7ac70f787833

死猪不怕开水烫,文章一开始我就跟他说了如果后端设置了自定义的 response.headers,服务器端要配置一下,

否则前端是拿不到的,还不行,你现在怎么知道去设置了?你刚才不是 振振有词说 为什么别人可以你不可以吗?

那你 tm 如果不按照我说的去配置,你 tm 取给我看看?

你自己说的话,是不是啪啪啪打脸?

d303892f9251f996f85ad9286d13fb35399e3481
说了这么多,你就是不愿意把分页放在 response .text 里面是吧,坚持放 header 里面是吧
c62734d1f0d6982ce13be11f068d2bb1b20fb423

还什么基于 yii 分页序列化,分页序列化跟你返回的数据格式有毛关系,你 tm 说白了,就是不想改返回的数据格式

你认为现在就这么处理分页是把,还是把分页数据存 headers 里面对把,

得了,那老子前端就给你传 request.headers里面 告诉你 page 就在那,你爱取不取,我 tm 就是有情绪了,咋啦,

你不是说我不懂 headers 么,还 tm 要教我 js?呵呵。。。。。

原文发布时间为:2018年06月28日
本文来源:掘金    如需转载请联系原作者

网友评论

登录后评论
0/500
评论
马铭芳
+ 关注
所属云栖号: 前端那些事儿