vue 学习笔记day10 vue-resource 和java 后端交互

一 vue 交互
    1》jquery  =>$ajax
    2》js原生  :es6=>axios
    3>》vue的resource
    get this.$http.get()

        this.$http.get("http://localhost:8080/MyBlogSys/test/run", {
                            params: {
                                act: 1,
                                userName: "zhangsan"
                            }

                        })
                        .then(function(res) {
                            console.log(res)
                        }, function(err) {
                            console.log(err)
                        }) ;
    post  this.$http.post()

        this.$http.post("http://localhost:8080/MyBlogSys/test/run", {
                                act: 1,
                                userName: "zhangsan"
                            }, {
                                emulateJSON: true
                            }

                        )
                        .then(function(res) {
                            console.log(res)
                        }, function(err) {
                            console.log(err)
                        });
    jsonp this.$http.jsonp()

    this.$http({
        url:xxx
        }).then(function(){},function(){})

    下载vue-resource
    bower install vue-resource

例子1:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <input type="button" value="按钮" @click="run" />
    </div>

    <script src="../vue.js"></script>
    <script src="../vue-resource.js"></script>
    <script>
        new Vue({
            el: "#app",
            data: {

            },
            methods: {
                run: function() {
                    this.$http.get("http://localhost:8080/MyBlogSys/test/run").then(function(res) {
                        console.log(res)
                    }, function(err) {
                        console.log(err)
                    })
                }
            }

        })
    </script>
</body>

</html>

例子2

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <input type="button" value="按钮" @click="run" />
    </div>

    <script src="../vue.js"></script>
    <script src="../vue-resource.js"></script>
    <script>
        new Vue({
            el: "#app",
            data: {

            },
            methods: {
                run: function() { //给后台传递数据
                    /*this.$http .get("http://localhost:8080/MyBlogSys/test/run?act=1&userName=zhangsan")
                        .then(function(res) {
                            console.log(res)
                        }, function(err) {
                            console.log(err)
                        }); */
                    /* this.$http.get("http://localhost:8080/MyBlogSys/test/run", {
                            params: {
                                act: 1,
                                userName: "zhangsan"
                            }

                        })
                        .then(function(res) {
                            console.log(res)
                        }, function(err) {
                            console.log(err)
                        }) ;*/
                    this.$http.post("http://localhost:8080/MyBlogSys/test/run", {
                                act: 1,
                                userName: "zhangsan"
                            }, {
                                emulateJSON: true
                            }

                        )
                        .then(function(res) {
                            console.log(res)
                        }, function(err) {
                            console.log(err)
                        });
                }
            }

        })
    </script>
</body>

</html>

例子3

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <!-- <input type="text" @keyup="run" v-model="str" /> -->
        <input type="text" @keyup="list" v-model="str" />
        <ul>
            <li v-for="(item , index) in lst">{{item}}--{{index}}</li>
        </ul>
    </div>

    <script src="../vue.js"></script>
    <script src="../vue-resource.js"></script>
    <script>
        new Vue({
            el: "#app",
            data: {
                str: "",
                lst: []
            },
            methods: {
                /* run: function() {
                    // https://sp1.baidu.com/5b11fzupBgM18t7jm9iCKT-xh_/sensearch?wd=Abc&cb=bd_cb_dict3_1582953217616
                    this.$http.jsonp("https://sp1.baidu.com/5b11fzupBgM18t7jm9iCKT-xh_/sensearch", {
                            params: {
                                wd: this.str,
                            },
                            jsonp: "cb"

                        })
                        .then(function(res) {
                            console.log(res)
                        }, function(err) {
                            console.log(err)
                        });
                }, */

                list: function() {
                    this.$http.jsonp("http://localhost:8080/MyBlogSys/test/list", {
                        params: {
                            act: 1,
                            userName: "zhangsan",
                        },
                        jsonp: "cb"
                    }).then(function(res) {
                        console.log(res);
                        this.lst = res.data;
                    }, function(err) {
                        console.log(err)
                    })
                }
            }

        })
    </script>
</body>

</html>

java后端代码

package com.example.demo.controller;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.util.JSONPObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController  //@Controller+@ResponstBody
@RequestMapping("test")
@CrossOrigin(origins = "*",maxAge = 3600) //跨域安全问题解决方案
public class TestController {
    private static final Logger logger = LoggerFactory.getLogger(TestController.class);

    @RequestMapping("/run")
    public Object test(HttpServletRequest request, HttpServletResponse response){
//        response.setHeader("Access-Control-Allow-Origin", "*");
        logger.info("打印日志");
        String act = request.getParameter("act");
        String userName = request.getParameter("userName");

        logger.info("act:"+act+",userName:"+userName);
        return 1;
    }

    @RequestMapping("/list")
    public String list(HttpServletRequest request, HttpServletResponse response) throws IOException {
//        response.setHeader("Access-Control-Allow-Origin", "*");
        logger.info("打印日志");
        String act = request.getParameter("act");
        String userName = request.getParameter("userName");
        String cb = request.getParameter("cb");
        logger.info("act:"+act+",userName:"+userName+",cb:"+cb);
        List list = new ArrayList();
        Map map = new HashMap();
        map.put("name","halou");
        map.put("age",18);
//list.add(map);
        list.add("jljlj");
        list.add(222);
//        response.setHeader("content-type", "text/html;charset=UTF-8");
//        PrintWriter out = response.getWriter();
//        out.write(cb);
        String s = JSONObject.toJSONString(list);
        return cb+"("+s+")";
    }
}

application.properties

#访问相关配置
server.port=8080
#项目访问名称,如果不配置直接访问bean就可以
server.servlet.context-path=/MyBlogSys

#数据库配置(我自己的,这个大家自己配置)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/myblog?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
spring.datasource.username=myblog
spring.datasource.password=myblog


#静态文件访问配置
spring.mvc.static-path-pattern=/static/**
#热部署生效
spring.devtools.restart.enabled: true
#设置重启的目录
#spring.devtools.restart.additional-paths: src/main/java
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude: WEB-INF/**

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.1</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
		<!-- 引入json处理包 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.35</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

 

vue 学习笔记day10 vue-resource 和java 后端交互vue 学习笔记day10 vue-resource 和java 后端交互 桑丘紫言 发布了172 篇原创文章 · 获赞 38 · 访问量 17万+ 私信 关注
上一篇:day10-字符编码


下一篇:Dubbo入门教程,谈谈为什么要用Dubbo?