老师,有几个小问题

老师,有几个小问题

1 如果没有data的话,那么params=“”,send(params)传入的不就是“”而不是null了吗

2 想知道post方法的话,url会有什么变化,这个变化就是指像get会在url后面加“?”这一种

3 使用get方法时,在url后面加上了?params,会有什么影响,对传输有什么影响吗

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

因为不是所有的ajax请求都需要传递参数,有些ajax请求制作数据请求,不做传参的。所以需要对data做一个处理,即data = options.data || null,即有data传参的时候执行options.data,没有data传参的时候执行null,null并不会赋值给data,而是在判断有没有data传参数这个时候send执行的就是send(null)。当data存在的时候,才会将data的对象字面量的形式转换为字符串形式,也就是赋值给params,建议同学再仔细听一下《2-5 js脚本》这个小节的内容哦(在3:07s左右开始听即可)

希望可以帮到你!

卡布琦诺 2019-06-24 15:48:41

1、因为在上面我们已经进行了定义,如果有data就使用options.data获取data并使用,如果没有就是用null,注意后面是进行了判断,如果有data的时候,才会执行params的相关操作,如果没有data就直接执行null了

http://img1.sycdn.imooc.com//climg/5d107cd50001782913090553.jpg

2、post请求方式的url显著变化就是参数不会显示出来(不像get请求一样,将参数显示在url+?+后面)

3、使用get请求,由于 url 长度限制的原因,如果通过get方式提交过多的数据,可能被截断,导致传递给后端的数据不完整

希望可以帮到你!

  • 提问者 猴野大表哥 #1
    谢谢老师,第2,3个问题我已经懂了,但是第一个还是有点疑惑 老师你说如果有data的时候,才会执行params的相关操作,如果没有data就直接执行null了 那这里如果没有data的时候,null赋值给data,data=null,可是最后send传入的是params,跟data=null有什么关系呢,难道是null还会赋值给params吗 谢谢老师
    2019-06-24 16:02:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师