2008-10-20 1 views
10

В чем преимущество передачи данных в качестве параметров или части URL-адреса в запросе Ajax GET?Ajax GET-запросы: используйте параметры или поместите данные в URL-адрес?

Используя параметры:

var ajax = new Ajax.Request('server.php',{ 
    parameters: 'store=11200&product=Meat', 
    onSuccess: function(myData){whatever} 
}); 

Использование URL:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{ 
    onSuccess: function(myData){whatever} 
}); 
+0

Вы используете Prototype в качестве библиотеки ajax? Это похоже на методы и т. Д. – stephenbayer 2008-10-20 13:27:07

+0

Прототип действительно. – 2008-10-20 14:52:33

ответ

13

Одним из преимуществ использования parameters аргумент в том, что вы можете передать его Hash -как объект, а не как строки. (Если вы сделаете это, тем не менее, убедитесь, поэтому установите параметр method в "GET" как метод по умолчанию для Prototype Ajax запросов является POST, см the Prototype Introduction to Ajax для более подробной информации.)

Еще одно преимущество, которое больше в линию с пример, который вы указали, заключается в том, что вы можете отделить URL-адрес запроса от параметров, которые ему отправлены. Это может быть полезно, если, например, вам нужно отправить несколько похожих запросов нескольким URL-адресам. (В этом случае общие параметры Hash, которые вы модифицируете для каждого запроса, могут быть более полезными, чем использование строки параметров.)

Для получения дополнительной информации см. the Prototype documentation of Ajax options.

+0

Я хотел бы принять этот ответ, но по какой-то причине я не получаю ссылку на это. – 2008-10-20 17:25:16

+0

Это уже не ссылка. Это изображение Checkmark под количеством голосов. – 2008-10-20 17:28:40

1
  • Четкость
  • Простой в использовании объекта и его сериализации ({store: 11200, product: "Meat"})
  • Четкость
0

Это действительно не имеет значения с технической точки зрения по этому вопросу, кроме форматирования и предпочтение, потому что прибудут запросы всегда содержат данные в URL-адресе. Параметры - это просто удобный способ построения запроса GET.

9

Один из моих любимых видов использования параметров должен пройти во всех полях формы без явных их перечислений:

new Ajax.Request('/myurl.php', { 
    method: 'get', 
    parameters: $('myForm').serialize(), 
    onSuccess: successFunc(), 
    onFailure: failFunc() 
} 
1

Чтобы ответить на этот вопрос, вы должны знать, как работать параметры. HTTP в основном (я знаю, есть больше) имеет два метода для запроса данных: GET и POST.

Для GET, параметры прилагаются к ресурсу, который вы запрашиваете, как в вашем коде выше:/my/resource/name? Para1 = bla. Здесь нет никакой разницы, если вы добавляете, если прямо к имени ресурса или использовать параметр. GET обычно используется для запроса данных (его GET;)

Для POST параметры написаны отдельно от ресурса в теле HTTP. Для этого вы должны использовать параметр. POST используется для отправки (огромных) данных.

Чтобы указать, какой метод запроса использовать, используйте способ .

Примечание. Ресурс GET имеет (в зависимости от сервера к серверу) жесткий предел по длине. Поэтому НИКОГДА не отправляйте много данных с помощью GET.

1

Вы можете также использовать формат:

var ajax = new Ajax.Request('server.php',{ 
    parameters: { 
    store: 11200, 
    product: "Meat" 
    } 
    onSuccess: function(myData){whatever} 
}); 

На преимуществе делать это таким образом, что вы можете перейти от GET к POST без изменения URL.

Смежные вопросы