如何使用标题和数据向服务器创建 javascript POST 请求

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13489481/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 18:56:24  来源:igfitidea点击:

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

javascriptposthttp-headers

提问by z3us

I use JS automation framework for testing iOS application. In the middle of a test I need to create POST request to server to some money to user and then verify that changes are reflected in UI.

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

Request looks like: wwww.testserver.com/userAddMoney?user_id=1&amount=999

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

but to authorize on server I need to pass special parameters to Header of request:

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

Headers:X-Testing-Auth-Secret: kI7wGju76kjhJHGklk76

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

Thanks in advance!

提前致谢!

回答by devsathish

So basically you want to set the header of a POST request. You can do it only if its an ajax request (You can't set headers for a normal html form submission request). Here is a way to set headers for an ajax request:

所以基本上你想设置一个 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");