Return responseText from jQuery.get()

Я попытался сделать что-то вроде этого:

var msg = $.get("my_script.php");

Я думал, что msg будет установлен в текст, возвращенный my_script.php, т.е. responseText объекта jqXHR. По-видимому, это не работает, так как msg всегда установлен на "[object XMLHttpRequest]"

Есть ли быстрый 1-строчный способ сделать то, что я хочу?

Спасибо.

Ответ 1

После некоторого тестирования я решил найти решение.

Мне нужно, чтобы вызов был синхронным, функция коротких строк $.get всегда асинхронна, поэтому мне нужно будет использовать $.ajax, например:

var msg = $.ajax({type: "GET", url: "my_script.php", async: false}).responseText;

Я не думаю, что есть лучший способ сделать это, спасибо за ваши ответы.

Ответ 2

Вы всегда можете использовать:

var msg;
$.get("my_script.php", function(text) {
  msg = text;
});

Если по какой-то причине ответ представляет собой текст, удаленный script может изменять тип содержимого на что-то вроде JSON, и, таким образом, jQuery пытается выполнить синтаксический анализ строки перед выдачей вам.

Ответ 3

Возвращаемое значение - это просто объект jqXHR, используемый для запроса ajax. Чтобы получить данные ответа, вам необходимо зарегистрировать обратный вызов.

$.get("my_script.php", function(data) {
  var msg = data;
  alert(msg);
});

Ответ 4

Текст ответа доступен в обратном вызове успеха; сделайте то, что вам нужно сделать с ним там.