我正在使用$ .get从php检索响应,但是如何将响应存储在变量中以便稍后在我的代码中使用它?谢谢!
$.get('promo_getstate.php', {
email: emailaddress,
country: 'DE',
lang: lang,
source: '1304_Spring_dly'
}, function (data) {
console.log('data is' + data);
getstate = data;
});
答案 0 :(得分:5)
只是声明要在.get调用本身之外设置的变量。然后它将在回调函数内部访问,您可以在其中将其设置为返回的数据。
var getstate = "";
$.get('promo_getstate.php', {
email: emailaddress,
country: 'DE',
lang: lang,
source: '1304_Spring_dly'
}, function (data) {
console.log('data is' + data);
getstate = data;
});
答案 1 :(得分:0)
您需要确保可以在原始呼叫范围之外访问分配。
如果未在get请求之外声明getstate
,则它将无法用于以后的调用。
问题是:您何时或在何种范围内需要此数据?
简单地说,你可以把它放在窗口的范围之内。虽然把所有东西都放在全球范围内是不好的做法,但这会让你知道把它放在哪里。
console.log('data is' + data);
window.getstate = data;
现在,在分配后,只需window.getstate
或getstate
即可使用。
答案 2 :(得分:0)
$ .get的工作方式是浏览器仍在获取数据,同时它也会在$ .get之后处理行。
$document.ready(function() {
var $HTML=""; //global variable
$(".button").click(function(event){
console.log('before $.get: ');
$.get('form1.html #form1', function(data){
$HTML = data;
console.log('inside $.get: ' + $HTML);
});
console.log('outside $.get: ' + $HTML);
});
所以解决方法是,所有需要$ .get值的代码都应该放在get语句中 或者,您可以以某种方式让它等到结果返回并且$ .get代码完成后再处理
之后的行答案 3 :(得分:0)
最佳解决方案是使用
setTimeout(function(){
console.log('outside $.get: ' + $HTML);
}, 100);