YUI3 - Почему обработчики событий не запускаются по запросу GET?
Я использую YUI3 для выполнения запроса GET, но обработчики событий не запускаются, когда я пытаюсь выполнить запрос GET. Комментарии должны регистрироваться в консоли в каждом из обработчиков событий. Вот мой код:
YUI({ filter: 'raw' }).use("io-xdr", "substitute", "json-parse", "node", function(Y) {
var url = "http://localhost:8000/scripts/test.php";
var output = Y.one("#container");
var cfg = {
method: "GET",
xdr: {
use: 'native'
},
on: {
start: handleStart,
success: handleSuccess,
failure: handleFailure,
}
};
var handleStart = function(id, a) {
output.set("innerHTML", "YES");
console.log("Inside of handleStart");
Y.log("a");
};
var handleSuccess = function(id, o, a) {
var results = Y.JSON.parse(o.responseText);
console.log(results.count);
console.log(results);
Y.log("b");
};
var handleFailure = function(id, o, a) {
console.log("Inside of handleFailure");
Y.log("c");
};
var obj = Y.io(
url, cfg
);
});
В консоли нет ошибок. URL правильный.
1 ответ
Решение
Объявите ваши обработчики выше, где вы определяете cfg. JavaScript использует подъем, поэтому переменные будут технически "доступны", хотя и не определены в том месте, где вы пытаетесь их использовать.
Вы можете увидеть этот jsbin, показывающий работоспособность: http://jsbin.com/owemib/1/edit
Хотя с CORS это не работает, но, по крайней мере, регистрируется!