Создайте хэш-запись, используя метод jQuery Post

#javascript #jquery #post #hash

#javascript #jquery #Публикация #хэш

Вопрос:

 $.ajax({
  url: '/create_lead',
  data: {
    name: $('#lead_gen_name').val(),
    lead_gen[email]: $('#lead_gen_email').val(),  
  },
  type: 'POST',
  dataType: 'json',
  success: function(data) {
  }
});
  

Я хотел бы использовать метод jQuery Post для публикации хэша информации. Я бы хотел, чтобы оно публиковалось в этом формате lead_gen [email], lead_gen [адрес] и так далее…

Как отформатировать метод Post для этого. Приведенный выше код завершается ошибкой синтаксиса.

Комментарии:

1. У вас также есть висячая запятая в конце этой строки lead_gen.

Ответ №1:

Предполагая, что ваш сервер может справиться с этим, вы можете использовать вложенные объекты в своем вызове:

 data: {
    name: $('#lead_gen_name').val(),
    lead_gen: { email: $('#lead_gen_email').val(), address: "1234 W Street" }
}
  

Ответ №2:

Преобразуйте его в JSON перед публикацией. То есть поместите все данные в объект javascript, выполните вызов JSON.stringify() , затем поместите результирующую строку в свой data раздел вызова ajax.

Ответ №3:

Мне кажется, что это должно сработать, но из-за того факта, что lead_gen[email protected]: не будет работать как ключ, как у вас здесь. Заключите ее в кавычки.

 $.ajax({
  url: '/create_lead',
  data: {
    name: $('#lead_gen_name').val(),
    'lead_gen[email]': $('#lead_gen_email').val(),  
  },
  type: 'POST',
  dataType: 'json',
  success: function(data) { }
});
  

Ответ №4:

Возможно, вы сможете использовать jQuery.serialize, чтобы делать то, что вы хотите. http://api.jquery.com/serialize /

 data: $('#lead_gen_form').serialize(),