修改headers的Cookie是错误的吗
在postman或curl中修改headers的cookie不起作用,证明了cookie无法通过headers传递
那传递的cookie必须是本地存在的吗,这是一个什么流程呢
如下图
curl是起作用的,之前写的代码有误。但是postman还是无效的,应该是是插件问题或者?
这个问题是postman插件导致的。我之前装的应该不是真正的postman。
第二个才是真正的postman,第一个应该有bug。
回复内容:
在postman或curl中修改headers的cookie不起作用,证明了cookie无法通过headers传递
那传递的cookie必须是本地存在的吗,这是一个什么流程呢
如下图
curl是起作用的,之前写的代码有误。但是postman还是无效的,应该是是插件问题或者?
这个问题是postman插件导致的。我之前装的应该不是真正的postman。
第二个才是真正的postman,第一个应该有bug。
但是postman还是无效的,应该是是插件问题或者?
postman是基于浏览器的插件,发出的请求都是通过调用ajax/xmlhttprequest
的方式,必然受到浏览器的安全限制:
- 首先 XMLHttpRequest 出于安全考虑是不支持跨域的, 这一点postman已经向浏览器声明了需要跨域的权限
- 其次,部分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" ];
第一个是Postman插件,第二个是Postman App
受Chrome沙盒机制的限制,只能传浏览器写入的Cookie。要想绕过浏览器,只能用Postman App,并启用另一个插件Interceptor。https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo
但这个App还不完善,没找到删Cookie值的地方。。只能回Chrome里清除所有Cookie。。
你写的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/
上一篇: php中如何制定轻量级的MVC标准
推荐阅读