Как я должен передавать значения строки запроса в запросе jQuery Ajax? В настоящее время я делаю их следующим образом, но я уверен, что есть более чистый способ, который не требует от меня кодирования вручную.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
Я видел примеры, когда параметры строки запроса передаются в виде массива, но эти примеры, которые я видел, не используют $.ajax()
модель, вместо этого они идут прямо к $.get()
. Например:
$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );
Я предпочитаю использовать формат $ .ajax (), поскольку это то, к чему я привык (нет особой причины - только личные предпочтения).
Изменить 09/04/2013:
После того, как мой вопрос был закрыт (как «Слишком Локализованный»), я нашел связанный (идентичный) вопрос - с 3-мя ответами не менее (Мой плохой, потому что я не нашел его в первую очередь):
Используя jquery для создания POST, как правильно указать параметр 'data'?
Это отлично ответило на мой вопрос, я обнаружил, что делать это таким образом гораздо проще для чтения, и мне не нужно вручную использовать значения encodeURIComponent()
URL или DATA (что я нашел неясным в ответе Бипена). Это потому, что data
значение кодируется автоматически через $.param()
). На всякий случай это может пригодиться кому-то еще, вот пример, который я использовал:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});
источник
Ответы:
Используйте параметр данных ajax. Вы можете отправить объект данных на сервер с помощью
data
параметра в ajax,type
который определяет, как вы его отправляете (или,POST
илиGET
). Тип по умолчанию этоGET
методПопробуй это
И вы можете получить данные по (если вы используете PHP)
В aspx, я считаю, что это (может быть неправильно)
источник
encodeURIComponent
. JQuery сделает это за вас.data:$.param({ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress})
вместоdata: { ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress }
Поместите свои параметры в
data
частьajax
вызова. Смотрите документы . Вот так:источник
Вот синтаксис с использованием jQuery
$.get
Так что в вашем случае это будет равно
Примечание
$.get
не дает вам возможность установить обработчик ошибок. Но есть несколько способов сделать это либо с помощью $ .ajaxSetup () , $ .ajaxError () или соединить последовательно.fail
на ваш ,$.get
как показано нижеПричиной установки типа данных «jsonp» являются проблемы, связанные с политикой исходного браузера, но если вы делаете запрос в том же домене, где размещен ваш javascript, у вас должно быть все в порядке с типом данных, установленным в
json
.Если вы не хотите использовать JQuery
$.get
то увидеть документы для$.ajax
которых позволяет пространство для большей гибкостиисточник
Попробуйте добавить это:
Зависит от того, какой тип данных ожидается, вы можете назначить
html, json, script, xml
источник
ID
) перед ее передачей в качестве параметра? У меня есть Q на SO, stackoverflow.com/questions/41192531/… . Я продвинулся в этом вопросе гораздо дальше, где теперь я вызываю диалог jquery и вызываю ajax для извлечения данных из mysql. Мне не хватает ссылки для получения уникального идентификатора, связанного с каждым кликом по точке данных . Ценю, если вы можете мне помочь. СпасибоСвойство data позволяет отправлять в виде строки. В коде вашего сервера примите его как строковый аргумент с именем «myVar», и тогда вы сможете разобрать его.
источник
stringify
?ajax
Реализация jQuery позаботится об этом за вас.Была та же проблема, где я указал,
data
но браузер отправлял запросы на URL, заканчивающийся на[Object object]
.Вы должны были
processData
установитьtrue
.источник
Вы можете использовать
$.ajax()
, и если вы не хотите помещать параметры непосредственно в URL, используйтеdata:
. Это добавлено к URLИсточник: http://api.jquery.com/jQuery.ajax/
источник
Параметр data метода ajax позволяет отправлять данные на сторону сервера. На стороне сервера вы можете запросить данные. Посмотрите код
На стороне сервера получите его, используя переменную $ _GET.
источник