jquery ajax怎么通过header传递参数

 我来答
匿名用户
2016-03-28
展开全部
涉及业务逻辑的输入是需要通过参数传递的,主要有三种方法:path, query, POST/PUT body

path: GET /api/user/123 其中的123通过path传递
query: GET /api/search_user?userId=123
body: POST /api/user-signup {username: 'john'}

不建议通过header传参的原因:
1. proxy 和 reverse proxy会drop header
2. 不利于传输object
3. HTTP access control (CORS) API 一般会设置Access-Control-Allow-Headers,分分钟教你做人。
4. 不利于dev和debug
5. Header长度限制

然后,如果你需要传header,比如Authorization,
育知同创教育
2016-05-21 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

jquery中不建议ajax通过header传递参数。

主要原因如下:

  1. proxy 和 reverse proxy会丢失header导致参数丢失

  2. 不利于传输js对象

  3. HTTP access control (CORS)  API 一般会设置Access-Control-Allow-Headers设置域限制

  4. 不利于开发和调试查看参数的正确性

  5. Header中的参数有长度限制,可能会导致传输丢失

举例如下:

$.ajax({
 url: '/path/to/service',
 method: 'GET | POST | PUT | DELETE',
 headers: {
   'Authorization': 'Bearer <jwt token>',
   'some-other-header': 'some value'
 }
})
.done(function(data){...})
.fail(function(jqXHR){...})
.always(function(){...})

正确的做法:

1. path中传递(这是最常见的)
2. body中传递POST 请求里面很常见
3. header field,例如 cookie,以及 OAuth 的 Authorization 等 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式