玻璃里的鱼鱼 发布于 2017-05-17 00:06

在postman或curl中修改headers的cookie不起作用,证明了cookie无法通过headers传递
那传递的cookie必须是本地存在的吗,这是一个什么流程呢

如下图

curl是起作用的,之前写的代码有误。但是postman还是无效的,应该是是插件问题或者?

这个问题是postman插件导致的。我之前装的应该不是真正的postman。

第二个才是真正的postman,第一个应该有bug。

2 个回答
  • 但是postman还是无效的,应该是是插件问题或者?

    postman是基于浏览器的插件,发出的请求都是通过调用ajax/xmlhttprequest的方式,必然受到浏览器的安全限制:

    1. 首先 XMLHttpRequest 出于安全考虑是不支持跨域的, 这一点postman已经向浏览器声明了需要跨域的权限

    1. 其次,部分header同样由于安全原因,是无法在浏览器中set的,受制于浏览器的用户特性

    具体哪些header不能set,要看XMLHttpRequest.js的源码实现

    var forbiddenRequestHeaders = [
        "accept-charset",
        "accept-encoding",
        "access-control-request-headers",
        "access-control-request-method",
        "connection",
        "content-length",
        "content-transfer-encoding",
        "cookie",
        "cookie2",
        "date",
        "expect",
        "host",
        "keep-alive",
        "origin",
        "referer",
        "te",
        "trailer",
        "transfer-encoding",
        "upgrade",
        "via"   ];
    
    2017-05-17 15:12 回答
    1. 第一个是Postman插件,第二个是Postman App

    2. 受Chrome沙盒机制的限制,只能传浏览器写入的Cookie。要想绕过浏览器,只能用Postman App,并启用另一个插件Interceptor。https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo

    3. 但这个App还不完善,没找到删Cookie值的地方。。只能回Chrome里清除所有Cookie。。

    4. 你写的Cookie格式也不对,左边填Cookie,右边应该填name=value这样的格式


    More about Postman App
    http://www.getpostman.com/docs/requests
    http://blog.getpostman.com/2014/11/28/using-the-interceptor-to-read-and-write-cookies/

    2017-05-17 05:25 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    mobiledu2502875483
  • 8
    王丽珠景平怡伦_621
  • 9
    adfa3sd5f6a
  • 10
    欣欣大妮
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有