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
Текст ответа доступен в обратном вызове успеха; сделайте то, что вам нужно сделать с ним там.