我想在函数之外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();
答案 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;
});
但请注意,在调用回调之前,该变量不可全局使用。