使用原生js提交post请求
时间: 2024-02-21 07:49:27 浏览: 163
可以使用XMLHttpRequest对象来提交POST请求,具体代码如下:
```
function submitPostRequest(url, data, callback) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
callback(xhr.responseText);
}
};
xhr.send(JSON.stringify(data));
}
// 示例
submitPostRequest("http://example.com/api", {name: "John", age: 30}, function(response) {
console.log(response);
});
```
其中,url是请求的地址,data是要提交的数据,callback是请求成功后的回调函数,responseText是服务器返回的响应数据。在send方法中,我们将data对象转换为JSON字符串并发送给服务器。需要注意的是,我们还设置了请求头的Content-Type为application/json,表示请求体中的数据是JSON格式的。
相关问题
(1)使用原生JavaScript发送get请求,响应结果为“Hi, web2022”,显示在控制台 (2)使用原生JavaScript发送post请求,响应结果为JSON串{ "msg", "Hello, 20th grade”},将msg属性值显示在弹窗中 要求:代码中注明必要的注释。
好的,我会为您解答这两个问题。
(1) 发送get请求,响应结果为“Hi, web2022”,显示在控制台
原生JavaScript发送get请求的代码如下:
```javascript
// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 设置请求方式和请求地址
xhr.open('GET', 'http://localhost:8080/hello', true);
// 发送请求
xhr.send();
// 监听请求状态变化事件
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) { // 请求成功
console.log(xhr.responseText); // 输出响应结果
}
};
```
其中,`xhr`对象是XMLHttpRequest对象,通过`open`方法设置请求方式和请求地址,然后通过`send`方法发送请求。最后,监听`onreadystatechange`事件,当请求状态变为4(请求已完成)且请求成功(状态码为200)时,输出响应结果到控制台。
(2) 发送post请求,响应结果为JSON串{ "msg", "Hello, 20th grade”},将msg属性值显示在弹窗中
原生JavaScript发送post请求的代码如下:
```javascript
// 创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 设置请求方式和请求地址
xhr.open('POST', 'http://localhost:8080/hello', true);
// 设置请求头信息
xhr.setRequestHeader('Content-Type', 'application/json');
// 发送请求
xhr.send(JSON.stringify({
name: 'web2022'
}));
// 监听请求状态变化事件
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) { // 请求成功
var response = JSON.parse(xhr.responseText); // 将响应结果解析为JSON对象
alert(response.msg); // 输出msg属性值到弹窗中
}
};
```
其中,与发送get请求的代码类似,不同之处在于需要设置请求头信息(Content-Type为application/json),并且在`send`方法中传入JSON格式的数据。最后,解析响应结果为JSON对象,并将msg属性值输出到弹窗中。
以上就是您提出的两个问题的解答了,希望能够帮到您。
原生php ajax post_使用原生ajax发送post请求完整案例
好的,这是一个使用原生 AJAX 发送 POST 请求的完整案例:
HTML 代码:
```
<!DOCTYPE html>
<html>
<head>
<title>使用原生 AJAX 发送 POST 请求</title>
<meta charset="UTF-8">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<h1>使用原生 AJAX 发送 POST 请求</h1>
<form>
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br><br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email"><br><br>
<button type="button" id="submit">提交</button>
</form>
<div id="result"></div>
<script src="main.js"></script>
</body>
</html>
```
JavaScript 代码:
```
document.getElementById("submit").addEventListener("click", function() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
var xhr = new XMLHttpRequest();
xhr.open("POST", "submit.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
document.getElementById("result").innerHTML = this.responseText;
}
};
xhr.send("name=" + name + "&email=" + email);
});
```
PHP 代码(submit.php):
```
<?php
$name = $_POST["name"];
$email = $_POST["email"];
echo "姓名:" . $name . "<br>邮箱:" . $email;
?>
```
注意:这个案例使用了 jQuery 库,但是只是为了方便引入 Ajax 库。实际上,这个案例并不需要 jQuery。
阅读全文