前端这5个Ajax的坑,你踩过几个?别说都知道

本文主要分享了前端开发中遇到的五个Ajax使用陷阱,包括Json数据提交错误、同步异步问题、同步操作失败、Safari浏览器提交无效和无法执行等问题,提供了详细的解决方案和代码示例。
摘要由CSDN通过智能技术生成

谈到ajax,大家都不会陌生,对于Web前端开发的童鞋,经常会跟它打交道,难免入"坑"。今天来分享下前端开发遇到的问题;首先,还是了解下ajax的定义。

ajax()定义

ajax() 方法通过 HTTP 请求加载远程数据。

该方法是 jQuery 底层ajax实现。简单易用的高层实现见 $.get, $.post 等。$.ajax()返回其创建的XMLHttpRequest 对象。

大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

了解完ajax()的定义,直接进入主题吧,脱坑时间走起。

坑1:jQuery+ajax提交json数据成功却进入error

我们还是拿一段自己写的一段代码来解析下,什么时候出现这个情况,如下:

function getNews(){
try{
        $.ajax({
type: "GET",
url:'xxx.json',
dataType: 'json',
jsonp : "callback",
success: function (msg) {
console.log(msg); 
            },
error:function (error) {
console.log(error)
            }
        });
    }catch(e){
        alert(e.message);
return false;
    }
}

 

定义一个函数,然后使用try...catch, 在浏览器里走一波吧。咦?怎么就是进不了success,一直都是打印的error错误信息。

此时此刻,会怀疑这个ajax调用代码有问题,各种调改,后面发现还是问题依旧;如果您真正的跳进了这个坑,在ajax代码没问题的情况下,首先考虑数据类型。

首先得确保json的jar包都已经导入正确

然后在看看网页和servlet之间的数据类型是否一致

contentType: "application/json;charset=utf-8",两边都需要设置一下传输的内容

如果遇到将数据发送到网页端显示 undefined 或者object Object时,用JSON.stringify(data)将该json对象装换成字符串即可。

如还有问题,你应该换个思路去考虑了,去运行下接口,比如我就碰到过一次,如下:

 

上图代码,是在CMS里做的一个接口,大家有没有看到问题所在了呢?其实是接口返回的根本不是一个完整的json呀;正常情况下,我们要去掉nextPage.....pageIndex,或者把两条数据外面包一层list,不应该吧下面的参数跟数据列表混在一起哦。于是在数据接口上做了处理优化,如下图的另外一个例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值