У меня есть веб-страница, которая позволяет пользователям обновлять свои рецепты. На этой странице у меня есть простая форма для пользователей, у которых нет javascript, и у меня есть функция AJAX для пользователей, у которых есть javascript. Когда я отправляю свою форму, она отлично привязывается к моей модели MVC, и все идет хорошо. Ниже приведен пример запроса вида:Отправка формы как объекта через AJAX
Как вы можете видеть, мой Ingredients
массив содержит объект, обладающий свойствами Ingredient
и Optional
. Все это прекрасно.
Проблема возникает, когда я пытаюсь отправить запрос AJAX, предположительно, с той же структурой, что и моя форма. Вот скриншот запроса AJAX.
Как вы можете видеть, вместо того, чтобы быть раскладывали как Ingredients[index].Ingredient
это Ingredients[index][Ingredient]
. Это разрушает привязку модели MVC, и я не могу получить доступ к каким-либо свойствам. Массив Steps
по-прежнему связывает все, даже несмотря на отсутствие индекса.
Вот мой AJAX запрос:
$.ajax({
type: "POST",
url: '/ajax/update_rec',
contentType: "application/x-www-form-urlencoded",
data: ajaxrecipe,
error: function() {
alert("There was an error updating your recipe, please try again");
},
success: function (result) {
alert("success");
}
});
Вот структура ajaxrecipe
var ajaxrecipe =
{
RecipeId: $('input#RecipeId').val(),
RecipeTitle: $('.recipe-information-area > h3.title').val(),
Ingredients: [],
Steps: []
};
ajaxrecipe.Ingredients.push({ Ingredient: ingrediento, Optional: optionalo});
ajaxrecipe.Steps.push(step);
Я обыскивал Интернет для решения этого, но они все придумали бесполезно. Я пробовал JSON.stringify
, datatype: "json"
, contenttype: "application/json charset utf-8"
и traditional: true
.
Если бы я мог просто отправить запрос AJAX таким же образом, как это делает форма, все должно работать нормально.
Вы отправляете объект с именем 'ajaxrecipe', но вы не указали, как его построить. Вы проверяете нас, чтобы догадаться? –
Я думал, что это будет очевидно из сетевых запросов, я все равно добавлю вопрос. – Frayt
Обновлено со структурой. – Frayt