首先什么是ajax?
**ajax就是局部刷新技术,也就是在不跳转网页的情况下通过某个事件触发,从后台拿到数据。
最大的好处就是提高了用户的体验和交互性,当前公司也没有人会用什么表单提交。**
ajax怎么从后台拿到数据?
以ssm框架为例!
在使用@RequestMapping后,返回值通常解析为跳转路径。加上@responsebody后,返回结果直接写入HTTP response body中,不会被解析为跳转路径。那么返回的就是你方法标注的类型。这里有个重点
因为该jar包的缘故所有返回的数据不管什么类型,都被打包成json数据输出。就比如返回的一个List
json格式就是 [{name:“美女”,sex:“男”},{name:“帅哥”,sex:“女”}]
前台ajax代码
首先ajax可以用js代码写也可以用jq写,但是jq封装的ajax更加简单明了,我们用jq的ajax,首先引入jq的js才可以。
我们这里写的是当某个元素被点击时触发,这个ajax请求。
url是请求地址
data是可以向后台传数据
type请求方式
success请求成功然后接受返回的数据data
ajax怎么给后台传数据?
第一种 地址传参get请求:http://119.29.151.49:8080/model?cod=123456
我们后台可以通过request .getParameter(“cod”)去拿,ssm的话可以在方法传入参数直接拿,比如
@RequestMapping(“ceshi”)
@ResponseBody
public User ceshi(String cod){
}
第二种 ajax data属性
格式和json一样 后台可以拿到 AlbumName Entered的值,拿值的方式和刚才一样。那么当type我们设置为get那么和地址传参一模一样,不仅会有乱码的问题,而且参数会暴露到地址,不安全。当我们type改为post那么都乱码问题可以简单解决,同时数据也不会再地址显示。建议都用post
第三 怎么代替表单提交呢?
我们可以通过表单的id把他里面的数据打包成json传到后台,这样就可以舍弃表单提交
首先我们form表单给它个id,然后ajax中 加入 data: $(’#frm’).serialize(),
该属性,其中frm是表单的id,我们后台就可以拿到整个表单的值,方式和平常表单提交拿值方式一样。