注意,Jquery提供了两个load方法,一个是事件方法,一个是ajax方法,事件load已经在1.8以后弃用了,本篇说的是ajax方法,它用来向某个路径发出请求。接收三个参数load(请求路径,可携带数据,回调函数)
。
在这三个参数中请求路径是必填的,且是一个后端路径,不可是某个前端页面的路径,它没有vue那样的路由支持。实际返回的是页面还是数据需要看后端返回的是什么,前后端交互数据本质上时字符串,Json本质上也是个字符串而已。
可携带数据是可选的,数据格式和ajax的data一样,但请注意
你是否传递参数意味着使用何种请求方式,不带参数时load会发出get请求,携带参数的时候load会发出post请求。
回调函数同样也是可选的,不过它生效在请求结果生效之后,就是说你写的回调函数只是用来配合load做一些展示上的联动,而并不能达到拿到返回值经过你的回调函数后才展示在页面上的效果。
如果后端返回的是一个json那就是展示数据,如果返回的是一个普通的字符串,则在单体项目中,如jsp,则返回的是一个页面。前后端分离时,load方法最好只是加载数据。当然如果你的情况允许也可以去接收页面路径,比如上面说的前端是一个jsp这种任然需要携带Web环境的技术。
在这其中有一个很容易混淆的点,就是带参数时使用post请求在单体项目中效果上达到路径跳转
,在此有必要解释一下,Post请求是可以用来跳转页面的,和get的区别只是携带参数的方式不同而已,造成post不能跳转页面的认知障碍是因为前端开发中常使用的交互技术,比如ajax和axios,这些技术封装的post请求不支持页面跳转,所以使用的时候后端需要配合着使用ResponseBody注解返回Json数据,因为它们本身就是异步技术,无法用来页面的跳转,而像表单的post以及load这种是可以用post跳页面的,总的来说是跳转页面还是返回数据是后端决定的,而不是由前端是哪种请求来决定的
。当然并不是ajax这些绝对不能跳页面,可以变通一下,用它们来处理原先的请求事务,最后后端返回一个路径用window跳就行了。有兴趣可以去搜索post请求页面跳转的代码。