如何在JavaScript中打印函数外的变量?

时间:2014-08-20 18:50:25

标签: javascript

我想在函数之外alert(httpAccept),但这是不可能的。我必须在httpAcceptResponse(data)内完成所有操作。

当我在getHTTP()之后使用httpAccess时,我得到了

资源被解释为脚本但使用MIME类型text / html传输:" http://www.domain.com/httpaccept.php?callback=httpAcceptResponse"。

这是一种解决方法?

function requestServerCall(url) {
  var head = document.head;
  var script = document.createElement("script");

  script.setAttribute("src", url);
  head.appendChild(script);
  head.removeChild(script);
}



var httpAccept = '';

function httpAcceptResponse(data) {
  httpAccept = data.token;
}

function getHTTP() {
  requestServerCall("http://www.domain.com/httpaccept.php?callback=httpAcceptResponse");
}

getHTTP();

1 个答案:

答案 0 :(得分:2)

您需要绑定回调。类似的东西:

var httpAcceptResponse;
function getHTTP(callback) {
  httpAcceptResponse = callback;
  requestServerCall("http://www.domain.com/httpaccept.php?callback=httpAcceptResponse");
}

getHTTP(function(data) {
  console.log(data.token);
  // now you have the variable
});

编辑:如果要全局使用它,请在回调中设置它:

getHTTP(function(data) {
  window.httpAccept = data.token;
});

但请注意,在调用回调之前,该变量不可全局使用。