【发布时间】:2017-01-24 20:39:28
【问题描述】:
背景
我正在研究一个网站,该网站在用户按下按钮时执行 POST 请求。我的目标是使用 JavaScript XMLHttpRequest 或任何其他小型库来模拟该 POST 请求。
我尝试了什么
我的第一步是使用 Google Chrome 并使用“网络”标签。这样做后,我得到了以下信息:
一般:
Request URL:https://bananaswebsite.com/_ui/common/list/ListServlet
Request Method:POST
Status Code:200 OK
Remote Address:00.00.000.000:000
请求标头:
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-US,en;q=0.8,es;q=0.6
Connection:keep-alive
Content-Length:173
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:LONG_STRING_HERE
DNT:1
Host:bananaswebsite.com
Origin:https://bananaswebsite.com
Referer:https://bananaswebsite.com/500?fcf=00B60000007Ewl7
User-Agent:Mozilla/5.0 (X11; CrOS x86_64 9000.58.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.58 Safari/537.36
表单数据:
action:filter
filterId:00B60000007Ewl7
filterType:t
page:1
rowsPerPage:100
search:
sort:
rolodexIndex:-1
retURL:/500?fcf=00B60000007Ewl7&rolodexIndex=-1&page=1
马上,我就不知所措了。我相信我在这里拥有我需要的所有数据,但同时我不知道如何使用它来发出 POST 请求。
我在 StackOverflow 上搜索过类似的问题:
即使它们非常好,我也无法将我对它们的理解应用到我的案例中。
问题
我不明白我应该对 cookie 做什么,也不知道我是否必须手动添加每个请求标头。
关于表单数据,我知道我需要创建一个 JSON 对象并将其与所有 Form Data 字段一起发送到我的 XMLHttpRequest 中。
有人可以帮助我使用所有这些信息发出 HTTP POST 请求吗?代码示例将不胜感激。
【问题讨论】:
-
什么具体你不明白?
-
我不明白如何处理 cookie,以及是否必须手动设置请求标头的每个字段。将更新我的问题!
-
您需要弄清楚服务器需要哪些 cookie 来验证您的帖子并返回 2XX 响应。所需的 cookie 会因所使用的后端技术而异。
-
所以我必须使用蛮力方法并手动测试每个?你能给我一个小例子,它发送一个带有一些 cookie 和一个简单对象的 post 请求吗?
标签: javascript ajax http post xmlhttprequest