我正在使用ajax从我的控制器获取变量,一切都很好,直到我将返回的数据推送到另一个变量。
这是我的代码片段
$(".event_selector").change(function() {
$.ajax({
url: "/get_customer_values",
type: "GET",
async:false,
data: {event_selected: $(".event_selector").val()},
success: function(data){
var customer_values = {};
for (var i in data) {
//This alert has the correct values
alert(i + " " + data[i]);
customer_values[i] = data[i];
}
}
});
for(var i in customer_values) {
//This is the alert that shows all the crazy values
alert("customer_values " + i + " " + customer_values[i]);
}
add_customer_values_to_panel(customer_values)
});
使用i和data [i]的第一个警报是完美的,具有所有正确的值。使用customer_values哈希的第二个警报具有看起来像设置的值,例如:
关键值
点击功能点击(){[原生代码]}
properties [object HTMLPropertiesCollection]
oncanplaythrough null
onchange null
onclick null
oncontextmenu null
ondblclick null
ondrag null
ondragend null
getAttributeNames函数getAttributeNames(){[native code]}
getAttribute函数getAttribute(){[native code]}
getAttributeNS函数getAttributeNS(){[native code]}
它至少有100个其他值,如下所示。
我尝试将var customer_values初始化移到ajax的外部,但这不起作用(没有任何反应,甚至没有触发第一个警报)。
发生了什么事?这些数据来自哪里?谢谢。
答案 0 :(得分:2)
你的“customer_values”对象不是全局的,它是在ajax成功函数中定义的......