[关键代码]
url , type, data 是前端向后端发送请求的过程。url是访问的后端地址,data中的变量是方法的参数。
传入参数后,后端会执行方法,返回结果是resp,格式是json格式,success(resp)表示成功返回。
【解决跨域问题】因为vue前后端分离,会出现跨域问题。
在后端中需要添加一个类解决跨域问题。
import org.springframework.context.annotation.Configuration;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Configuration
public class CorsConfig implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException, ServletException, IOException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
String origin = request.getHeader("Origin");
if(origin!=null) {
response.setHeader("Access-Control-Allow-Origin", origin);
}
String headers = request.getHeader("Access-Control-Request-Headers");
if(headers!=null) {
response.setHeader("Access-Control-Allow-Headers", headers);
response.setHeader("Access-Control-Expose-Headers", headers);
}
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
【例】模拟用户注册的过程:
传入username,password,confirmedPassword。如果三个值都是"123",返回{"error_message","success"},否则返回{"error_message","error"}
@RestController
public class demo1 {
@RequestMapping("/answer/")
public Map<String,String> ans(String username,String password ,String confirmedPassword){
Map<String,String>map=new HashMap<>();
if(username.equals("123")&&password.equals("123")&&confirmedPassword.equals("123")){
map.put("error_message","success");
}
else{
map.put("error_message","error");
}
return map;
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
这里我server-port 配置的是3001,所以接口地址为: localhost:3001/answer/
前端:
<template>
<div>{{msg}}</div>
</template>
<script setup>
import { ref } from 'vue'
import $ from 'jquery'
const msg = ref('')
$.ajax({
url: "http://127.0.0.1:3001/answer/",
type: "get",
data: {
username: "123",
password: "123",
confirmedPassword: "123",
},
//resp是运行成功后的后台数据
success(resp) {
if (resp.error_message === "success") {
msg.value = "123";
} else {
msg.value = "456";
}
},
});
</script>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
所有评论(0)