How to create javascript POST request to server with Headers and Data

问题描述 投票:0回答:2

我使用 JS 自动化框架来测试 iOS 应用程序。在测试过程中,我需要向服务器创建 POST 请求,向用户发送一些钱,然后验证更改是否反映在 UI 中。

请求看起来像:wwww.testserver.com/userAddMoney?user_id=1&amount=999

但要在服务器上授权,我需要将特殊参数传递给请求标头:

标头: X-Testing-Auth-Secret:kI7wGju76kjhJHGklk76

提前致谢!

javascript post http-headers
2个回答
7
投票

所以基本上你想设置 POST 请求的标头。仅当它是 ajax 请求时才能执行此操作(您不能为普通的 html 表单提交请求设置标头)。这是为 ajax 请求设置标头的方法:

var request = new XMLHttpRequest();
request.onreadystatechange= function () {
    if (request.readyState==4) {
        //handle response
    }
}
request.open("POST", "url", true);
request.setRequestHeader("header", "blah blah");
request.setRequestHeader("Accept","text/plain");
request.send("post data");

0
投票

要在 JavaScript 中发送带有标头参数的 POST 请求,您可以使用内置的 fetch API 或任何第三方库,例如 axios 或 superagent。

这里有一个使用 fetch API 的例子:

    const url = 'https://www.testserver.com/userAddMoney? 
    user_id=1&amount=999';
    const options = {
    method: 'POST',
    headers: {
            'X-Testing-Auth-Secret': 'kI7wGju76kjhJHGklk76'
    }
  };

  fetch(url, options)
 .then(response => response.json())
 .then(data => {
  // Do something with the response data
 })
 .catch(error => {
    console.error(error);
  });

在此示例中,我们向 https://www.testserver.com/userAddMoney?user_id=1&amount=999 发送一个 POST 请求,其中包含一个 X-Testing-Auth-Secret 标头,其中包含用于授权请求。

您可以修改 url 和 headers 变量以匹配您的特定端点和标头参数。发送请求后,您可以在 then 块中处理响应数据或在 catch 块中处理任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.