用Ajax调用传递ID的最佳方法是什么?


What is the best method to pass ID with Ajax call?

我是AJAX新手。

传递ID更新产品时。对此有什么解释吗?提前谢谢你。

$.ajax({
   type: 'post',
   url: 'my_controller/update_product_exe/' + id, //This line
   dataType: 'json'
});
这个…

$.ajax({
   type:'post',
   url: 'my_controller/update_product_exe',
   dataType: 'json',
   data: {id: id} // this line
});

区别在于url本身。将id附加到第一个url将改变它,因此将请求发送到特定的url。但是,它在请求期间没有发送任何数据。例子:

// let's say id = "1234"
$.ajax({
   type: 'post',
   url: 'my_controller/update_product_exe/' + id, // This will be 'my_controller/update_product_exe/1234'
   dataType: 'json'
});

第二个:

$.ajax({
   type:'post',
   url: 'my_controller/update_product_exe',
   dataType: 'json',
   data: {id: id} // This will be {id: "1234"}
});

对于第二个,你正在传递数据;在第一个,你只是修改你的url通过附加一些字符串到它。

如果您只是想了解这两个ajax请求的区别,请访问:

在第一个请求中,您不是在ajax请求中传递数据,而是在URL中发送ID,在CI控制器中,您将通过使用URL段获得此ID。

在第二个请求中,您正在发送ajax请求中的数据,因此您可以通过使用$_POST

在控制器中获取数据

现在,哪一个更好,两者都有区别,当您需要使用ajax传递一些输入值时,可以选择第二个。您可以在此请求中发送多个数据。

您还可以使用第二个请求来实现第一个请求目标,在这种情况下,您可以在ajax数据中传递ID。你可以发送多个数据,但你必须采取分段url。

从概念上讲,您在第一个示例中使用GET,在第二个示例中使用POST。HTTP动词是有含义的,POST是用来向服务器发送信息的。即使您可以使用get获取id,这也不能使其在语义上正确。目前,您只有一个id,它的大小有限,只有一个参数,但即使在小型应用程序中,通常也会向服务器发送几个参数和一些kb的数据。GET参数的大小有限,POST更适合于此。

由于所有这些原因,第二个使用POST的版本是正确的。

下面是关于GET和POST之间区别的一些额外资源。

http://blog.teamtreehouse.com/the-definitive-guide-to-get-vs-post

http://www.diffen.com/difference/GET-vs-POST-HTTP-Requests

POST和GET的区别是什么?

我什么时候应该使用GET或POST方法?它们之间的区别是什么?