将数据作为以 jQuery Ajax 方法编码的 URL 发送到服务器

问题描述 投票:0回答:2

我目前正在支持一个项目。在代码的某些地方,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 一起发送数据。这些方法之间有什么区别。使用这些方法中的任何一个有什么具体原因吗

javascript jquery ajax
2个回答
0
投票

首先是通过在ajax函数的data key中写入params来传递数据, 第二种是通过在 url 本身中写入参数来传递数据。 两者都是GET请求,传递数据的方式有点不同。 在这两种情况下,数据最终都会以

?&first=Rick&last=Astley&job=Rock+Star

的形式传递

0
投票

GET 请求获取数据并将其编码到 URL 中,因此它们本质上是相同的。值得注意的是,虽然 GET 请求中的数据可以双向传递,但 POST 请求通过 HTML 请求的消息正文而不是 URL 传递数据。因此,我认为第一个是更好的做法,因为它适用于两种请求类型。

© www.soinside.com 2019 - 2024. All rights reserved.