【发布时间】:2021-09-20 00:19:12
【问题描述】:
我有一个 POST XHRequest 可以在 jQuery 中正常工作,但不能在 vanilla JS 中使用。
因为我正在尝试学习 JS 的所有内部工作原理,所以我想尽可能多地使用原版代码。我知道 Fetch API,但我对这一切真的很陌生,真的想更好地理解。 所以,这是我目前面临的问题(一个多星期了):
我有这个代码,它可以工作:
let packg = {
schema: 'string',
table: 'anotherString'
};
const packgJSON = JSON.stringify(packg);
$.ajax({
type: 'POST',
url: 'php/get_data.php',
data: {'content': packgJSON}
});
这是 Firefox 开发者工具中的结果,与我的 PHP 文件完美配合:
当我尝试编写 vanilla JS 时,像这样:
const xhr = new XMLHttpRequest();
xhr.open('POST', 'php/get_data.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
let packg = {
schema: 'string',
table: 'anotherString'
};
const packgJSON = JSON.stringify(packg);
xhr.send({'content': packgJSON});
这是我得到的结果:
我不明白我应该如何格式化 .send() 内容才能像 jQuery 请求一样格式化。我已经尝试过在 MDN、W3Schools、You Might Not Need jQuery 等中找到的其他选项,但请求永远不会像 jQuery 那样。我显然无法理解 JS 对象和字符串的基本概念,但我完全不明白我应该做什么。
【问题讨论】:
标签: javascript jquery xmlhttprequest