在 JavaScript 中,XMLHttpRequest 提供了一种向服务器发送 HTTP 请求的简单方法,包括携带请求数据的 POST 请求。让我们考虑如何使用 XMLHttpRequest 发送与表单等效的数据。
假设您有一个包含以下隐藏输入的 HTML 表单:
<form name="inputform" action="somewhere" method="post"> <input type="hidden" value="person" name="user"> <input type="hidden" value="password" name="pwd"> <input type="hidden" value="place" name="organization"> <input type="hidden" value="key" name="requiredkey"> </form>
要使用 XMLHttpRequest 复制此表单数据,您可以使用以下 JavaScript 代码片段:
var http = new XMLHttpRequest(); var url = 'get_data.php'; var params = 'user=person&pwd=password&organization=place&requiredkey=key'; http.open('POST', url, true); // Send appropriate header information http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { console.log(http.responseText); } } http.send(params);
在上面的代码中,“params”变量包含要提交的数据URL 编码的键/值对。如果您希望从对象创建动态参数,请考虑以下代码:
var params = new Object(); params.user = 'person'; params.pwd = 'password'; params.organization = 'place'; params.requiredkey = 'key'; // Encode the object into URL-encoded key/value pairs let urlEncodedDataPairs = [], name; for( name in params ) { urlEncodedDataPairs.push(encodeURIComponent(name) + '=' + encodeURIComponent(params[name])); } var params = urlEncodedDataPairs.join('&');
然后可以在 XMLHttpRequest 请求中使用此修改后的“params”变量,如前所述。
以上是如何在 JavaScript 中使用 XMLHttpRequest 发送 POST 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!