我使用 JS 自动化框架来测试 iOS 应用程序。在测试过程中,我需要向服务器创建 POST 请求,向用户发送一些钱,然后验证更改是否反映在 UI 中。
请求看起来像:wwww.testserver.com/userAddMoney?user_id=1&amount=999
但要在服务器上授权,我需要将特殊参数传递给请求标头:
标头: X-Testing-Auth-Secret:kI7wGju76kjhJHGklk76
提前致谢!
所以基本上你想设置 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");
要在 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 块中处理任何错误。