因此,我遇到了一些非常奇怪的问题,并且非常感谢我能得到的任何帮助。
所以我正在尝试创建一个应用程序(使用node.js,除了它是我熟悉的语言之外没有特殊原因),它会发出一个post请求并解析响应。在这个网页上有一个搜索框,在搜索时它发出一个帖子请求并返回结果页面的html。
出于某种原因,当我使用node.js请求库发出请求时,它返回一个页面,页面标题为403 Forbidden,页面内容为nginx。我100%确定帖子请求网址和路径是否正确。
当使用邮递员拦截器拦截请求时,我能够重新发布请求并成功返回结果,但是它有两个额外的头文件,这些头文件没有出现在chrome的网络选项卡下的请求中。
X-DevTools-Emulate-Network-Conditions-Client-Id
X-DevTools-Request-Id
当在邮递员中取消选中这两个标题时,请求会返回没有结果的网站html(但不会像使用node.js请求库那样返回403禁止)。
这些标题是什么?我搜索了x-devtools,但找不到这些标题的确切内容。我怀疑它们与chrome有关,而不是与实际请求有关。
此外,当我使用内置的postman函数,它允许我生成一个代码片段,用我选择的语言重新创建这个post请求时,运行该代码会导致403禁止响应(在python和node.js中) 。
可能导致这种情况的原因是什么?在创建模仿请求的代码时,没有发送哪些信息?为什么我收到403禁止而不仅仅是页面的html没有在未经过身份验证的请求上的典型结果。我知道这个问题有很多,但我很乐意回复任何其他信息。它不是ajax请求,邮递员截获的邮件请求中的授权选项卡下没有任何内容。以下是postman中出现的请求的标题(已编辑出一些部分)
X-DevTools-Request-Id:xxx
Origin:xxx
X-DevTools-Emulate-Network-Conditions-Client-Id:xxx
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Content-Type:application/x-www-form-urlencoded
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer:xxx
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8,af;q=0.6
Cookie:xxx
总结一下:
尽管网址和路径正确并且所有标题看似正确,但是可能导致403响应的原因是什么?特别考虑到我用来发出请求的代码是直接从邮递员那里输出来的,这个邮件是为了模仿真实邮政请求的确切行为,那么为什么它会给我邮递员内邮差生成节点的不同结果。 js代码?
这是在某个时候工作,直到网站管理员似乎做了一些更改,最终阻止了我的请求