php – jQuery $.ajax请求在Internet Explorer中收到错误的响应
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – jQuery $.ajax请求在Internet Explorer中收到错误的响应,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2121字,纯文字阅读大概需要4分钟。
内容图文
我遇到了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
这是请求函数:
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');
}
}
});
}
PHP函数返回:
{"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});但结果是一样的.
有人有这个问题吗?或任何提示?
我没有更多的想法.
解决方法:
尝试使用绝对网址为url:’index.php?route = checkout / cart / add’
问题是您的响应是html或xml(我看到xml页面的开始标记(命名空间标记),后跟换行符后跟(旧)html起始标记).
jQuery期待json.所以这是一个解析错误,导致在预期成功的标准中出现错误回调.
确保后端发送正确的信息并且被叫页面是正确的.您可以使用网络选项卡捕获调用以查找问题.
内容总结
以上是互联网集市为您收集整理的php – jQuery $.ajax请求在Internet Explorer中收到错误的响应全部内容,希望文章能够帮你解决php – jQuery $.ajax请求在Internet Explorer中收到错误的响应所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。