Jquery提供的load方法

Jquery提供了使得页面中某个元素局部更新内容的方法load。load方法接收三个参数load(请求路径,可携带数据,回调函数)

在这三个参数中请求路径是必填的,且一定是一个后端路径,而不可是某个前端页面的路径,它没有vue那样的路由支持。所以实际返回的是页面还是数据需要看后端返回给前端的是什么,因为后端的返回值只认字符串,Json本质上也是个字符串而已。如果你曾尝试着去测试过你会发现,后端除非你使用了ResponseBody或者RestController否则永远意味着返回的是一个前端视图路径,如果没有使用这两个注解且返回的类型不是String,会报参数传输运行异常。

可携带数据是可选的,如传递需要是一组Json,但请注意你是否传递参数意味着使用何种请求方式,不带参数时load会发出get请求,携带参数的时候load会发出post请求。

回调函数同样也是可选的,不过它并不会生效在请求结果生效页面之前,就是说你写的回调函数只是用来配合load做一些展示上的联动,而并不能达到拿到返回值经过你的回调函数后才展示在页面上的效果。

前面说到想load页面还是数据取决于后端的配合,如果后端返回的是一个json那就是展示数据,如果返回的是一个普通的字符串,则在单体项目中,如jsp,则返回的是一个页面。前后端分离时,load方法最好只是加载数据。当然如果你的情况允许也可以去接收页面路径,比如上面说的你的前端是一个jsp这种任然需要携带Web环境的技术。在这其中有一个很容易混淆的点,就是带参数时使用post缺能在效果上达到路径跳转的效果,在此有必要解释一下,但从Post请求来说是可以用来跳转页面的,人家和get的区别只是携带参数的方式不同而已,造成post不能跳转页面的认知障碍是因为前端开发中常使用的交互技术,比如ajax和axios,这些技术封装的post请求不支持的页面跳转而已,而像表单的post以及load这种是可以用post跳页面的。当然并不是ajax这些绝对不能跳页面,可以变通一下,用它们来处理原先的请求事务,最后返回路径用window跳就行了。有兴趣可以去搜索post请求页面跳转的代码,你会发现网上会多费劲的生成form去携带参数等等各种迷之代码,本来只是为了第一参数直接暴露,第二避免get长度限制,第三window路径处理太长容易出各种问题,但实际却把问题搞的更复杂。

猜你喜欢

转载自blog.csdn.net/dudadudadd/article/details/130063340