我遇到了ajax json请求和Internet Explorer的问题.
具体来说,ajax请求行为不正常.
我正在使用:
OpenCart 1.5.3.1
jQuery的1.7.1.min.js
jQuery的UI,1.8.16.custom.min.js
Internet Explorer 9
PHP 5.2.9
具体来说,ajax请求行为不正常.
我正在使用:
OpenCart 1.5.3.1
jQuery的1.7.1.min.js
jQuery的UI,1.8.16.custom.min.js
Internet Explorer 9
PHP 5.2.9
这是请求函数:
function addToCart(product_id,quantity,option_id,option_value) { quantity = typeof(quantity) != 'undefined' ? quantity : 1; option_value = typeof(option_value) != 'undefined' ? option_value : 0; option_id = typeof(option_id) != 'undefined' ? option_id : 0; jQuery.ajax({ url: 'index.PHP?route=checkout/cart/add',type: 'post',cache: false,data: 'product_id=' + product_id + '&quantity=' + quantity + '&option_id=' + option_id + '&option_value=' + option_value+'&rnd=' + Math.random(),dataType: 'json',success: function(jsonObj) { $('.success,.warning,.attention,.information,.error').remove(); if (jsonObj['redirect']) { location = jsonObj['redirect']; } if (jsonObj['success']) { $('#notification').html('<div class="success" style="display: none;">' + jsonObj['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); $('.success').fadeIn('slow'); $('#cart-total').html(jsonObj['total']); $('html,body').animate({ scrollTop: 0 },'slow'); } } }); }
{"success":"Added to cart!","total":"1 product(s) - 52,48\u043b\u0432."}
这一切都适用于Chrome,FF等,但在IE中失败.
实际上IE并没有触发“成功”事件.
我能得到响应的唯一方法是通过错误处理程序.
然后json对象的status = 200,statusText = OK
这是在Chrome中触发成功事件后的json对象:
jsonObj: Object success: "Added to cart!" total: "1 product(s) - 52.48лв." __proto__: Object
从中使用“成功”和“总计”值.
这是在Internet Explorer中处理错误事件后的json对象:
responseText是一个包含当前页面html源的字符串.
我试过jQuery.ajaxSetup({cache:false});但结果是一样的.
有人有这个问题吗?或任何提示?
我没有更多的想法.