Я много раз видел эту технику по другим вопросам, чтобы сделать AJAX POST:
var postData = $('#my-form').serializeObject();
$.post(url, postData, function(){});
Но я хочу сделать вот что.
var data = {name1: 'value1', name2: 'value2'};
$.post(url, data, function(){});
И это вызывает ошибку:
TypeError: undefined is not a function (near '...$.ajax...')
Какой метод позволяет мне публиковать объекты, отличные от DOM, в качестве данных формы HTTP?
Если проблема не в опечатке, вам необходимо указать минимальный воспроизводимый пример. url не определено… но если его не определить, это приведет к ошибке ссылки, когда вы попытаетесь прочитать его. Если он и второй аргумент определены правильно, то все должно работать нормально.
Вы можете использовать что-то вроде var fd = new FormData; fd.append('name1', 'value1'); fd.append('name2', 'value2');, затем посмотрите на это, если вы хотите использовать jQuery. Я бы просто использовал XHR2.
@StackSlave — Использование FormData значительно усложняет задачу. Если вы используете jQuery, вам нужно передать ему дополнительные параметры, чтобы он не сломался. Вам также необходимо убедиться, что серверная часть, на которую вы отправляете данные, может поддерживать данные составных форм. Помимо опечаток, код в вопросе в порядке.
Ошибка нуба, jQuery Slim требует еще одной жертвы



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы хотите создать объект JSON и отправить его через Ajax
let myData = {
first: 'A',
second: 'B',
third: {
third_1: '3A'
third_2: '3B'
},
};
$.ajax({
type: "POST",
dataType: "text",
data: myData, //<-- your object
url: "/path/to/myPHPfile.php",
success: function (serverResult) {
// Do something with serverResult
},
error: function (e) {
console.info("Error", e);
}
});
Вы сделали опечатку. Вы назвали свою переменную
dataв строке 1 иpostв строке 2.