前后端分离要注意的事项

后天代码:

package com.wgc.todo.controller;

import com.google.gson.Gson;
import com.wgc.todo.entity.Todo;
import com.wgc.todo.exception.DatabaseException;
import com.wgc.todo.exception.DateValidateException;
import com.wgc.todo.service.ToDoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.websocket.server.PathParam;
import javax.ws.rs.POST;
import java.util.List;

@RestController
/*要明确跨域的设置*/
@CrossOrigin(origins = {"http://localhost:8081"},
        methods = {RequestMethod.GET, RequestMethod.DELETE, RequestMethod.PUT, RequestMethod.POST},
        allowedHeaders = {"*"},
        maxAge = 3600)
public class ToDoController {
    @Autowired
    private ToDoService service;


    @RequestMapping(value = "/all", method = RequestMethod.GET)
    public List<Todo> selectAll() {
        List<Todo> todos = null;
        try {
           todos = service.selectAll();
           todos = null;
        } catch (DatabaseException e) {
           return null;
        } catch (Exception e) {
            return null;
        }
        return todos;
    }

    /*Todo对象传过来的是一个字符串*/
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public void insert(@RequestBody Todo todo) {
        try {
            service.insert(todo);
        } catch (DateValidateException e) {
            e.getMessage();
        } catch (Exception e) {
            e.getLocalizedMessage();
        }
    }

    /*@RequestBody接收的都是一个字符串,如果设置int,客户端会认为,类型不一致,
    * 所以找不到此方法*/
    @RequestMapping(value = "/del", method = RequestMethod.DELETE)
    public void delete(@RequestBody String  id) {
            Integer integer = Integer.valueOf(id);
        try {
            service.deleteByPrimaryKey(integer);
        } catch (DateValidateException e) {
            e.printStackTrace();
        } catch (Exception e) {

        }
    }

    @RequestMapping(value = "/update", method = RequestMethod.PUT)
    public void update(@RequestBody  Todo todo) {
        if (todo != null) {
            service.updateByPrimaryKey(todo);
        }
    }


    @RequestMapping(value = "/state", method = RequestMethod.PUT, produces = "application/json;")
    public void updateState(@RequestBody String to) {
        Gson gson = new Gson();
        /*json字符串转为对象*/
        Todo todo = gson.fromJson(to, Todo.class);
        if (todo.getState() == null) {
            return;
        }
        service.updateState(todo);
    }

    @RequestMapping(value = "/queryState/{state}", method = RequestMethod.GET, produces = "application/json;")
    public List<Todo> selectState(@PathVariable String state) {
        List<Todo> todos = service.selectState(state);
        return todos;
    }
}

 

客无端的:

    del(e) {
                let $this = this;
                let id = e.id;
                fetch("http://localhost:8080/del",{
                    method: 'delete',
                    body: JSON.stringify(id)    
                }).then(resp => resp.json())
                .then(data => {
                    $this.$message({
                        type: 'success',
                        message: '删除成功!'
                    }).then(resp => resp.json()).then(data => {window.localhost.reload()});
                    
                }).catch((error) => {
                    $this.$message({
                        type: 'info',
                        message: '删除失败'
                    });
                });

 

详情的github中的vue-todos

package com.wgc.todo.controller;

import com.google.gson.Gson;
import com.wgc.todo.entity.Todo;
import com.wgc.todo.exception.DatabaseException;
import com.wgc.todo.exception.DateValidateException;
import com.wgc.todo.service.ToDoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.websocket.server.PathParam;
import javax.ws.rs.POST;
import java.util.List;

@RestController
/*要明确跨域的设置*/
@CrossOrigin(origins = {"http://localhost:8081"},
methods = {RequestMethod.GET, RequestMethod.DELETE, RequestMethod.PUT, RequestMethod.POST},
allowedHeaders = {"*"},
maxAge = 3600)
public class ToDoController {
@Autowired
private ToDoService service;


@RequestMapping(value = "/all", method = RequestMethod.GET)
public List<Todo> selectAll() {
List<Todo> todos = null;
try {
todos = service.selectAll();
todos = null;
} catch (DatabaseException e) {
return null;
} catch (Exception e) {
return null;
}
return todos;
}

/*Todo对象传过来的是一个字符串*/
@RequestMapping(value = "/add", method = RequestMethod.POST)
public void insert(@RequestBody Todo todo) {
try {
service.insert(todo);
} catch (DateValidateException e) {
e.getMessage();
} catch (Exception e) {
e.getLocalizedMessage();
}
}

/*@RequestBody接收的都是一个字符串,如果设置int,客户端会认为,类型不一致,
* 所以找不到此方法*/
@RequestMapping(value = "/del", method = RequestMethod.DELETE)
public void delete(@RequestBody String id) {
Integer integer = Integer.valueOf(id);
try {
service.deleteByPrimaryKey(integer);
} catch (DateValidateException e) {
e.printStackTrace();
} catch (Exception e) {

}
}

@RequestMapping(value = "/update", method = RequestMethod.PUT)
public void update(@RequestBody Todo todo) {
if (todo != null) {
service.updateByPrimaryKey(todo);
}
}


@RequestMapping(value = "/state", method = RequestMethod.PUT, produces = "application/json;")
public void updateState(@RequestBody String to) {
Gson gson = new Gson();
/*json字符串转为对象*/
Todo todo = gson.fromJson(to, Todo.class);
if (todo.getState() == null) {
return;
}
service.updateState(todo);
}

@RequestMapping(value = "/queryState/{state}", method = RequestMethod.GET, produces = "application/json;")
public List<Todo> selectState(@PathVariable String state) {
List<Todo> todos = service.selectState(state);
return todos;
}
}
posted @ 2018-12-03 19:13  YouAreABug  阅读(262)  评论(0编辑  收藏  举报