javascript - 如何在本地测试通过 Javascript 发送表单数据?
问题描述
我正在学习通过手动构建 XMLHttpRequest 来通过 JavaScript 发送表单。在给定示例的末尾,有一条注释:
注意:如果您想将数据发送到第三方网站,则 XMLHttpRequest 的这种使用受同源策略的约束。对于跨域请求,您需要 CORS 和 HTTP 访问控制。
不过,我想在本地测试该示例。我可以更改什么以使其在本地工作?发帖请求的地址?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button>Click me!</button>
<script>
function sendData(data) {
console.log('Sending data');
const XHR = new XMLHttpRequest();
let urlEncodedData = "",
urlEncodedDataPairs = [],
name;
for (name in data) {
urlEncodedDataPairs.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
}
urlEncodedData = urlEncodedDataPairs.join('&').replace('/%20/g', '+');
XHR.addEventListener('load', function (event) {
alert('Yeah! Data sent and response loaded.');
});
XHR.addEventListener('error', function (event) {
alert('Oops! Something went wrong.');
});
XHR.open('POST', 'https://example.com/cors.php');
XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XHR.send(urlEncodedData);
}
const btn = document.querySelector('button');
btn.addEventListener('click', function () {
sendData({ test: 'ok' });
})
</script>
</body>
</html>
解决方案
您可以使用虚假的 REST API 服务,例如https://reqres.in。基本使用是免费的,不需要任何注册。
他们通常会发回虚假数据,并且不需要 CORS。
例如,您只需要将 URL 更改https://reqres.in/api/users
为。
推荐阅读
- android - Windows Batch - 通过变量传递空间以在 ADB 命令中使用
- scala - 尝试在 Scala 中编写通用过滤器函数
- genetic-algorithm - 基因组可以是异质的并表达具有异质元素的实体吗?
- angular - Angular / TS - 如何从组件调用函数到服务并获取返回值
- javascript - 在iframe中使用`window.top.$`发送ajax请求,但是referer不是iframe src的url
- bash - 如何制作一个循环来获取输入和输出
- excel - Excel INDEX / MATCH / MATCH 跨单元格范围
- python - df.drop(
) 从 df 中删除具有该索引的所有行,但保留 在 df.index - sql - SQL Server - Exists 的替代方案(子查询太多)
- node.js - 使用 Winston 将 nodejs 应用程序记录到 DigitalOcean Spaces