我只是:
<script>
$('#blah').on('click', function(){
$.ajax({
type: 'POST',
url: 'ajax.php',
data: {"xxx":"yyy", "zzz":"nnn"}, // my variables...
success: function(response){
// response = "success,123" from server side
// so for accessing to the values "success" and "123" I just:
status = response.split(",")[0];
count = response.split(",")[1];
// now "status" and "count" are undefined in IE while it's working in all other browsers
}
});
});
</script>
如上所述,服务器对Ajax的响应是“success,123”。
用于访问值“success”和“123”我这样做:
status = response.split(",")[0];
count = response.split(",")[1];
现在status
和count
在IE
中未定义,而在其他所有浏览器中都很好。
我该怎么做才能解决这个问题? 谢谢
答案 0 :(得分:0)
虽然我不确定为什么IE会这样做而我现在无法真正测试,但更聪明的替代方案是使用JSON进行响应。如果使用PHP,json_encode
可用于将简单数组转换为JSON:
<?php
echo json_encode(array('status' => 'success', 'count' => 123));
然后:
// your response originally looks like this:
// { status: 'success', count: 123 }
// you can define $.ajax with { dataType : 'JSON' } instead of:
response = $.parseJSON(response);
console.log(response.status);
console.log(response.count);
如果您不使用PHP,只需搜索使用您的语言的方法。
这也可以帮助您解决以后处理包含分隔符的响应的问题(例如,,
中的句子)
答案 1 :(得分:0)
那是因为你还没有定义变量。而不是:
status = response.split(",")[0];
我会尝试
var status = response.split(",")[0];