在AJAX(Asynchronous JavaScript and XML)中,"query" 通常指的是发送到服务器的查询字符串(query string)。查询字符串是URL的一部分,位于问号(?)之后,并且包含了键值对的形式来传递参数给服务器。例如:
http://example.com/page?name=John&age=30
在这个例子中,name=John&age=30 就是查询字符串,它包含了两个参数:name 和 age。
在使用AJAX时,你可以通过JavaScript动态地创建一个HTTP请求,并将查询字符串作为请求的一部分发送给服务器。这可以通过设置 XMLHttpRequest 对象的 open 方法中的 URL 或者通过设置 send 方法中的数据来实现。如果你使用的是现代的JavaScript和fetch API,你也可以构建URLSearchParams对象来轻松地处理查询参数。
以下是一个使用fetch API发送带有查询字符串的GET请求的例子:
const params = new URLSearchParams({
name: 'John',
age: 30
});
fetch(`http://example.com/page?${params}`)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
对于POST请求,你可以直接在请求体中发送数据,而不必使用查询字符串。下面是一个发送POST请求的例子,其中数据被放在请求体中:
fetch('http://example.com/page', {
method: 'POST', // 指定HTTP方法
headers: {
'Content-Type': 'application/x-www-form-urlencoded', // 设置正确的Content-Type
},
body: params // 发送的数据
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
在上面的例子中,URLSearchParams 对象被用来构建查询字符串或请求体的内容。当使用application/x-www-form-urlencoded内容类型时,这是推荐的方式,因为它会正确地编码参数。
**application/x-www-form-urlencoded:**默认的表单编码类型,当浏览器提交HTML
元素,并且方法是 GET 或 POST 时使用。它将表单字段转换为URL编码的字符串