на моем ubuntu 14.04, apache 2.4, php 5.5.9 install, я попробовал с sample.php on / var / www / html (root по умолчанию), и он работал нормально. Таким образом, проблема была в моей конфигурации виртуальных серверов. Решение заключалось в том, чтобы включить в директорию def, содержащую .php, следующую строку:
php_admin_flag engine on
Asynchronusly означает, что запрос выполняется в фоновом режиме и вызывает вашу функцию, когда она получила ответ. Этот метод лучше всего, если вы хотите получить результат, но разрешите использовать приложение в запросе. Если вы хотите получить прямой ответ, взгляните на запрос синхронизации. этот запрос приостанавливает выполнение сценария до тех пор, пока не получит ответ, и пользователь не сможет ничего сделать, пока не будет получен ответ. Вы можете переключить его через:
async: false,
Так например:
$.ajax({
url: "myurl",
async: false,
...
})
Так как $ .getJSON () использует ajax-конфигурации, просто установите глобальные конфигурации ajax:
// Set the global configs to synchronous
$.ajaxSetup({
async: false
});
// Your $.getJSON() request is now synchronous...
// Set the global configs back to asynchronous
$.ajaxSetup({
async: true
});
a
в ajax.) Но тот факт, что вопрос был задан, и несколько человек нашли это полезным, означает, что есть некоторые случаи, когда это желательно поведение ...
– cchristelis
8 September 2015 в 22:57
$.getJSON()
- сокращенное обозначение для $.ajax()
, которое может быть сконфигурировано как синхронное (см. jQuery.getJSON и JQuery.ajax ):
$.ajax({
dataType: "json",
url: url,
data: data,
async: false,
success: function(data) {
...
draw_polygon(data);
}
});
Попробуйте избежать синхронных вызовов. Цитата из jQuery doc (см. Async prop) :
Запросы междоменного доступа и dataType: запросы «jsonp» не поддерживают синхронную работу. Обратите внимание, что синхронные запросы могут временно блокировать браузер, отключая любые действия, пока запрос активен.
Возможно, вы захотите попробовать jQuery Отложить следующим образом:
var jqxhr = $.getJSON(url); jqxhr.done(function(data) { ... draw_polygon(data); });
$. getJSON (), не принимает конфигурацию, как сказано в документах, это сокращенная версия:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
. Так что просто перепишите свой запрос с точки зрения этого и асинхронный: false будет работать так, как вы ожидаете.
async: false
или покажите пример. – Peter Krauss 13 March 2015 в 22:44