我有一个ajax调用,我想在另一个页面上使用这个ajax的结果。
//这是main.js文件
function myFun(){
var my_user = "Stas";
var itemsUrl = "myxmlwithusers";
var user_found = false;
$.ajax({
url: itemsUrl,
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
cache: false,
async: false,
dataType: "text",
success: function(data){
var jsonObject = JSON.parse(data);
results = jsonObject.d.results;
$(results).each(function(){
if($(this)[0].user == my_user){
user_found = true;
}
});
},
error:function () {
console.log("Error");
}
}
);
}
//这是execute.js文件
myFun();
if (user_found == true){cool}
// user_found我需要true或false。假设我将文件execute.js放入我的函数myFun(),在main.js中,我的用户使用“$(this)[0] .user”获取,我需要在execute.js中接收“true”< / p>
谢谢!
答案 0 :(得分:0)
1st:只需在html中包含任何js文件
<head>
<script>
var user_found = true; // or false if you like
</script>
// include main.js and execute.js
</head>
现在你可以在没有var的js文件中的任何地方调用user_found ..即使它在任何js文件函数中改变它会在其他文件中改变
第二名如果在execute.js之前包含main.js,可以像
一样使用它var user_found = false;
function myFun(){
var my_user = "Stas";
var itemsUrl = "myxmlwithusers";
$.ajax({
url: itemsUrl,
....................
答案 1 :(得分:0)
问题是$ .ajax调用是异步的,a.k.a你在设置之前检查user_found的值。尝试这种方法
function myFun(callback){
var my_user = "Stas";
var itemsUrl = "myxmlwithusers";
var user_found = false;
$.ajax({
url: itemsUrl,
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
cache: false,
async: false,
dataType: "text",
success: function(data){
var jsonObject = JSON.parse(data);
results = jsonObject.d.results;
$(results).each(function(){
if($(this)[0].user == my_user){
user_found = true;
}
});
if(typeof callback === "function"){
callback(user_found);
}
},
error:function () {
console.log("Error");
}
}
);
}
然后你可以像
一样使用它myFun(function(result){
if (result == true){
//cool
}
});
答案 2 :(得分:0)
考虑使用HTML5本地存储。存储的值应该可以通过您域中提供的每个页面访问。
// Store
localStorage.setItem("user_found", "true");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("user_found");