Просмотр полной версии : ExternalInterface JS(AJAX)
FenixGnom
21.10.2011, 15:10
Всем добрый день, сталкнулся вот с какой проблемой в AS я делаю вызов
var response:Object = ExternalInterface.call('get_config');
trace(response);
в js
function get_config()
{
$.ajax({
type: "POST",
url: "/ajax/get_config",
data: {},
dataType: 'json',
success: function(data){
return data;
}
});
}
и почему то в AS приходит значение null хоть в консоли показывает что запрос ajax прошел нормально и ответ не нул а JSON
Подскажите пожалуйста в чем может быть проблема, почему возвращаеться не JSON
Что-то мне подсказывает, что ExternalInterface ждет моментального ответа от JS, а JS в свою очередь ждет ответа от сервера. Попробуйте лучше добавить еще callBack в AS и вызывать его JS'ом на success, и уже там обрабатывать.
не знаю jquery хорошенько, но , судя по коду, у вас функция которую запрашивает флеш и не возвращает ничего. так?
FenixGnom
21.10.2011, 16:02
Там получаеться что приходит null я пробывал делать что бы в AS через setTimeout через 2 секунды только запрашивало результат все равно получаю null так же проверял если в JS прописать
function get_config()
{
$.ajax({
type: "POST",
url: "/ajax/get_config",
data: {},
dataType: 'json',
success: function(data){
return '{"json":"JSON"}';
}
});
}
тогда во AS приходит нормальный результат
тогда через addCallback() зарегистрируйте функцию js и отдавайте в неё результат запроса, а она уже пусть дернет флешку
попробуйте так :
ExternalInterface.addCallback("asCallback" , trace);
var response:Object = ExternalInterface.call('get_config');
trace(response);
function get_config()
{
$.ajax({
type: "POST",
url: "/ajax/get_config",
data: {},
dataType: 'json',
success: function(data){
document[player].asCallback(data);
}
});
}
Когда в аяксе возникнет событие "success" и вызовется анонимная функция "function(data)" заранее неизвестно. Поэтому без addCallback таки никак.
P.S.
А к чему такие сложности с аяксом?
Если вы сами вызываете "ExternalInterface.call('get_config')", то почему вместо этого вы не можете получить данные с "/ajax/get_config" тем же urlloader-ом прямо в AS?
FenixGnom
21.10.2011, 17:52
Спасибо большое за помощь, с аадкалбак все теперь правельно работает :yahoo:
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.