我目前正在支持一个项目。在代码的某些地方,ajax调用将如下所示
var myObj = [
{ name: "first", value: "Rick" },
{ name: "last", value: "Astley" },
{ name: "job", value: "Rock Star" }
];
$.ajax({
type:"GET",
url:"https://example.com",
contentType:"application/json",
data:myObj,
success:function(data){
console.log(data)
}
});
但在其他一些地方,ajax 调用将如下所示
$.ajax({
type:"GET",
url:"https://example.com"+"?"+$.param(myObj),
contentType:"application/json",
data:{},
success:function(data){
console.log(data)
}
});
在上面的代码中,不是使用 data 属性将数据发送到服务器, 使用 $.param(myObj) 与 url 一起发送数据。这些方法之间有什么区别。使用这些方法中的任何一个有什么具体原因吗
首先是通过在ajax函数的data key中写入params来传递数据,
第二种是通过在 url 本身中写入参数来传递数据。
两者都是GET请求,传递数据的方式有点不同。
在这两种情况下,数据最终都会以
?&first=Rick&last=Astley&job=Rock+Star
的形式传递
GET 请求获取数据并将其编码到 URL 中,因此它们本质上是相同的。值得注意的是,虽然 GET 请求中的数据可以双向传递,但 POST 请求通过 HTML 请求的消息正文而不是 URL 传递数据。因此,我认为第一个是更好的做法,因为它适用于两种请求类型。