jQuery ajax方法调用记录

521 阅读2分钟

    最近开发中,遇到框架不知名的ajax调用异常,决定用jQuery的ajax来替换。记录一下本地工程引入jQuery的ajax方法的测试效果。

一、ssm配置MySQL修改

    1、pom.xml文件中添加配置,引入依赖jar包

<!-- mysql 数据库驱动-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.18</version>
</dependency>

    2、修改数据库信息配置(原本使用oracle配置)

jdbc.jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.jdbcUrl5mysql=jdbc:mysql://localhost:3306/ry_vue
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.driverClass5mysql=com.mysql.jdbc.Driver
jdbc.user=user
jdbc.user5mysql=root
jdbc.password=user123
jdbc.password5mysql=password

    3、修改spring配置文件引用的变量名称

<!-- MySQL 数据源 -->
   <bean id="pooledDataSource"
      class="com.mchange.v2.c3p0.ComboPooledDataSource">
      <!-- 基本属性 url、user、password -->
      <property name="jdbcUrl" value="${jdbc.jdbcUrl5mysql}" />
      <property name="driverClass" value="${jdbc.driverClass5mysql}" />
      <property name="user" value="${jdbc.user5mysql}" />
      <property name="password" value="${jdbc.password5mysql}" />
   </bean>


二、后台controller方法编写

@ResponseBody
@RequestMapping(value="/ajaxquerydata01",produces="text/html;charset=UTF-8")
public String ajaxquerydata01 (String username01){
   //由于JSON.parse()限制比较严格,只支持标准的JSON格式,key/value值必须加双引号。
   String returnJsonData  = "{\"flag\":ajaxquerydata01,\"msg01\":\""+username01+"\",\"msg02\":\"JSON.parse()限制比较严格,只支持标准的JSON格式,key/value值必须加双引号。\"}";
   return returnJsonData;
}

    1、传参

    通过简单的数据类型来接收参数值,即controller中方法的参数名直接对应前台URL传入的参数名称,仅限int,string,double,float,etc 这些简单的数据类型。


    2、直接返回json格式数据,需要使用@ResponseBody注解

    3、解决中文返回前台乱码的问题,需要在@RequestMapping中,

        添加produces="text/html;charset=UTF-8"

      由于JSON.parse()限制比较严格,只支持标准的JSON格式,返回前台的json字符串key/value值必须加双引号。


三、前台jsp页面ajax方法编写

    1、引入jQuery

<script type="text/javascript" src="static/jquery/jquery-2.1.1.js"></script>

    2、编写ajax调用方法

<script type="text/javascript" src="static/jquery/jquery-2.1.1.js"></script>
<script type="text/javascript" >
    function ajaxquery01() {
        $.ajax({
            type:"get",
            url:"http://localhost:8080/ssmcrud22/urlpath01/ajaxquerydata01",
            data:{username01:"user01"},
            datatype:"json",
            //contenttype:"application/json; charset=utf-8",
            success:function (redata) {
//                alert(redata);
                var rejson = JSON.parse(redata);
//                alert(rejson.flag);
                alert("hello my dear "+rejson.msg01+","+rejson.msg02);
            },
            error:function () {
                alert("error ajaxquery01");
            }
        });

    }
    /*调试的时候可以把方法放在页面加载时调用
    $(document).ready(function(e){
        $.ajax({
            type:"get",
            url:"http://localhost:8080/ssmcrud22/urlpath01/ajaxquerydata01",
            date:{username01:"inputusername"},
            datatype:"json",
            success:function (redata) {
                alert(redata);
                var rejson = JSON.parse(redata);
                //var rejson = JSON.parse("{\"flag\":1,\"msg01\":null}");
                alert(rejson.flag);
            },
            error:function () {
                alert("error onload");
            }
        });
    });*/
</script>

四、chrome调试

    1、调试页面异常


    2、修改返回json格式后,执行正常

扩展:

jQuery、json基本语法与用法


参考资料:

1、MySQL配置

https://blog.csdn.net/qq_42249896/article/details/92646531

2、springMVC controller的传参(SpringMVC中的Controller如何获取请求中的参数)

https://blog.csdn.net/a909301740/article/details/80411114

3、jQuery的ajax方法

https://blog.csdn.net/weixin_40264344/article/details/84105099

4、JSON.parse()报错原因及处理

https://www.baidu.com/link?url=Kn-ZsLdUkSz5shjh-p883wdNFePAob3WYI0bWoqSgeL-qWVcNcw0p5_ZoXjN6WVxTa9W1Y9mkAX18YlL4PoB8_&wd=&eqid=fa33f8f400085b36000000055e6cfba3

5、json解析中文乱码处理

https://blog.csdn.net/dianxu0804/article/details/101241838