Ajax GET 请求:使用参数或将数据放入 URL 中?
-
03-07-2019 - |
题
在 Ajax GET 请求中将数据作为参数传递与作为 URL 的一部分传递相比有何优势?
使用参数:
var ajax = new Ajax.Request('server.php',{
parameters: 'store=11200&product=Meat',
onSuccess: function(myData){whatever}
});
使用网址:
var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{
onSuccess: function(myData){whatever}
});
解决方案
使用 parameters
参数的一个好处是,您可以将它传递给 Hash
类似的对象而不是字符串。 (但是,如果你这样做,请确保将方法
参数设置为" GET"
,因为Prototype Ajax请求的默认方法是POST;请参阅 Ajax原型简介了解更多详情。)
与您提供的示例更为一致的另一个优点是,您可以将请求URL与发送给它的选项分开。例如,如果您需要向多个不同的URL发送大量类似的请求,这可能很有用。 (在这种情况下,为每个请求修改一个公共参数 Hash
可能比使用参数字符串更有用。)
有关详细信息,请参阅 Ajax选项的Prototype文档。
其他提示
参数最常用的一种方法是传入表单的所有字段而不明确列出它们:
new Ajax.Request('/myurl.php', {
method: 'get',
parameters: $('myForm').serialize(),
onSuccess: successFunc(),
onFailure: failFunc()
}
要回答这个问题,您应该知道参数的工作方式。 HTTP基本上(我知道还有更多)有两种方法来请求数据:GET和POST。
对于GET,参数会附加到您请求的资源上,就像您在上面的代码中所做的那样:/ my / resource / name?para1 = bla。如果您直接附加到资源名称或使用参数选项,则没有区别。 GET通常用于请求数据(GET;)
对于POST,参数与HTTP正文中的资源分开编写。为此,您必须使用参数选项。 POST用于发送(巨大的)数据。
要指定要使用的请求方法,请使用方法选项。
注意:GET资源具有(取决于服务器到服务器)对长度的硬性限制。所以永远不要使用GET发送大量数据。
您还可以使用以下格式:
var ajax = new Ajax.Request('server.php',{
parameters: {
store: 11200,
product: "Meat"
}
onSuccess: function(myData){whatever}
});
这样做的好处是你可以在不改变URL的情况下从GET更改为POST。
- 易读性
- 易于使用对象并将其序列化(
{store: 11200, product: "Meat"}
) - 易读性
除了格式化和首选项之外,从技术角度来看并不重要,因为get请求始终拥有URL中的数据。参数只是构建GET请求的便捷方式。