0

我正在使用 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
  );

});

控制台中没有任何错误。网址是正确的。

4

1 回答 1

2

在定义 cfg 的地方声明您的处理程序。JavaScript 使用提升,因此变量在技术上将是“可用的”,尽管在您尝试使用它们的桥上未定义。

您可以看到这个 jsbin 显示功能有效:http: //jsbin.com/owemib/1/edit

虽然使用 CORS 它不起作用,但它至少可以记录!

于 2012-09-04T23:58:53.060 回答