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