javascript寫網頁, POST 请求失败的情况,或者使用 Promise 和 async/await 来处理异步操作。
时间: 2023-06-20 11:03:54 浏览: 233
由回调函数、Promise到async/await的同步写法执行异步代码
5星 · 资源好评率100%
在 JavaScript 中,我们可以使用 XMLHttpRequest 对象来发送 POST 请求。如果 POST 请求失败,我们可以使用 XMLHttpRequest 对象的 onerror 事件来处理。
下面是一个使用 Promise 和 async/await 来处理异步操作的示例:
```javascript
function postData(url, data) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.onload = function() {
if (xhr.status === 200) {
resolve(xhr.response);
} else {
reject(xhr.statusText);
}
};
xhr.onerror = function() {
reject("Network Error");
};
xhr.send(JSON.stringify(data));
});
}
async function postDataAsync(url, data) {
try {
const response = await postData(url, data);
console.log(response);
} catch (error) {
console.error(error);
}
}
postDataAsync("http://example.com/api/data", {name: "John", age: 30});
```
在上面的代码中,我们定义了一个名为 postData 的函数,它返回一个 Promise 对象。该函数发送一个 POST 请求,将传递的数据作为 JSON 字符串发送到指定的 URL。
我们还定义了一个名为 postDataAsync 的 async 函数。该函数使用 await 关键字来等待 postData 函数的返回结果,并在结果可用时将其存储在 response 变量中。如果 postData 函数返回一个拒绝状态的 Promise 对象,则捕获错误并将其存储在 error 变量中。
最后,我们调用 postDataAsync 函数,并传递要发送的数据和目标 URL。在结果可用时,我们将在控制台中打印出响应。如果请求失败,则将错误记录在控制台中。
阅读全文