2017-04-17 62 views
0

我目前支持project.In代码的一些地方,Ajax调用会像下面将数据发送到服务器的URL中的jQuery的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){ 
 

 
    } 
 
});

在上面的代码中,不是使用数据属性 将数据发送到服务器,而是使用$ .param(myObj)将数据与url一起发送。这些方法之间的区别是什么?理由使用这些方法之一

+1

有没有太大的区别,但抓住的是,数据参数是首选这就是为什么他们提供给你,也就是你的代码变得干净,更具可读性,我想当你使用数据参数时,jquery会为你处理它 – razzbee

+0

您无法使用“GET”方法发送json数据,您必须在url中传递数据或将“GET”方法更改为“POST” –

回答

0

第一种是通过在ajax函数的数据键中写入参数来传递数据,第二种是通过在url中写入参数来传递数据。 两者都是GET请求,传递数据的方式有点不同。 在这两种情况下,数据将最终通过
?&first=Rick&last=Astley&job=Rock+Star

0

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

相关问题