Javascript 无法获取/设置应在范围内的变量
我试图弄明白为什么不能从内部作用域(即嵌套在全局函数内部)访问Javascript 无法获取/设置应在范围内的变量,javascript,jquery,asp.net-mvc-5,Javascript,Jquery,Asp.net Mvc 5,我试图弄明白为什么不能从内部作用域(即嵌套在全局函数内部)访问access\u token(函数)变量 代码如下: $(function () { var accessToken = ""; var getHeaders = function () { alert(accessToken); if (accessToken) { return
access\u token
(函数)变量
代码如下:
$(function () {
var accessToken = "";
var getHeaders = function () {
alert(accessToken);
if (accessToken) {
return {
"Authorization" : "Bearer " + accessToken
};
}
}
var showResponse = function (obj) {
$("#output").text(JSON.stringify(obj, null, 4));
};
var register = function () {
var url = "/api/account/register";
var contentBody = $("#registerData").serialize();
$.post(url, contentBody).always(showResponse);
return false;
}
var saveAccessToken = function (response) {
accesToken = response.access_token;
};
var login = function () {
var url = "/token";
var contentBody = $("#loginData").serialize();
contentBody = contentBody + "&grant_type=password";
$.post(url, contentBody)
.success(saveAccessToken)
.always(showResponse);
return false;
};
var getPatients = function () {
var url = "http://localhost:62012/api/patients/";
$.ajax(url, {
type: "GET",
beforeSend: function (xhr, settings) { xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken); }
}).always(showResponse);
return false;
};
$("#getPatients").click(getPatients);
$("#register").click(register);
$("#login").click(login);
});
我尝试在整个代码中使用警报,但似乎只要警报未在内部saveAcessToken
中触发,accessToken
就是“
应用程序的一般流程:
accessToken
getPatients
按钮时,会发送一个ajax
GET请求李>
任何帮助都将不胜感激 看起来您正在saveAccessToken中设置名为accesToken的变量。尝试将其重命名为accessToken看起来您正在saveAccessToken中设置一个名为accesToken的变量。尝试将其重命名为accessToken您很可能试图在AJAX调用完成之前访问该变量。请参阅“常规流”中的编辑。当我发送请求时,不可能不设置变量,因为变量应该在
登录之后设置/我看不出这与C#有什么关系。您很可能试图在AJAX调用完成之前访问变量。请参阅“常规流”中的编辑。当我发送请求时,不可能不设置变量,因为变量应该在登录之后设置/我不明白这和C有什么关系。