SpringMCV跨域

扫码查看

不在同服务器访问就会产生跨域(用其他软件编写HTML测试)

后台Controller

package edu.nf.ch02.controller;

import org.springframework.web.bind.annotation.*;

/**
* @Author Eric
* @Date 2018/12/3
*/
@RestController
@RequestMapping("/app")
/**
* origins = "*" 参数是个数组{"1","2"}
* 标注在方法上时表示当前的请求处理方法支持跨域,但会合并属性配置
* 注意,这种方式的配置只对当前类有效,对其他的Controller是不起作用的,
* 如果需要所有的Controller都支持跨域访问,那么可以配置全局的跨域访问
* (通过xml或者是java配置)
*/
//@CrossOrigin(origins = "*",methods = {RequestMethod.GET,RequestMethod.POST})
public class CorsController {
@PostMapping("/login")
public String login(String userName,String password){
if("admin".equals(userName) && "123".equals(password)){
return "success";
}else {
return "fail";
}
}
}

dispatcher.servlet.xml设置全局配置(记得配置web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="edu.nf.ch02"/>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<!--全局的跨域配置-->
<mvc:cors>
<!-- /** 表示所有请求都将支持跨域方法 -->
<mvc:mapping path="/**" allowed-origins="*" allowed-methods="GET,POST,PUT,DELETE"/>
</mvc:cors>
</beans>

html

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<link rel="stylesheet" href="//g.alicdn.com/msui/sm/0.6.2/css/sm.min.css">
<script type='text/javascript' src='//g.alicdn.com/sj/lib/zepto/zepto.min.js' charset='utf-8'></script>
<script type='text/javascript' src='//g.alicdn.com/msui/sm/0.6.2/js/sm.min.js' charset='utf-8'></script>
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<head>
<a class="button button-link button-nav pull-left" href="/demos/card" data-transition='slide-out'>
<span class="icon icon-left"></span>
返回
</a>
<h1 class="title">我的App</h1>
</head>
<body>
<nav class="bar bar-tab">
<a class="tab-item active" href="#">
<span class="icon icon-home"></span>
<span class="tab-label">首页</span>
</a>
<a class="tab-item" href="#">
<span class="icon icon-me"></span>
<span class="tab-label">我</span>
</a>
<a class="tab-item" href="#">
<span class="icon icon-star"></span>
<span class="tab-label">收藏</span>
</a>
<a class="tab-item" href="#">
<span class="icon icon-settings"></span>
<span class="tab-label">设置</span>
</a>
</nav>
<div class="content">
<div class="list-block">
<form id="f1">
<ul>
<!-- Text inputs -->
<li>
<div class="item-content">
<div class="item-inner">
<div class="item-title label">Name</div>
<div class="item-input">
<input type="text" name="userName" placeholder="Your name">
</div>
</div>
</div>
</li>
<li>
<div class="item-content">
<div class="item-inner">
<div class="item-title label">Password</div>
<div class="item-input">
<input type="password" name="password" placeholder="password">
</div>
</div>
</div>
</li>
</ul>
</form>
</div>
<div class="content-block">
<div class="row">
<div class="col-50"><a href="#" class="button button-big button-fill button-danger">取消</a></div>
<div class="col-50"><a href="#" id="login" class="button button-big button-fill button-success">登陆</a></div>
</div>
</div>
</div>
</body>
<script>
$(function(){
$("#login").on("click",function(){
$.ajax({
type:"post",
url:"http://localhost:8080/app/login",
data:$("#f1").serialize(),
success:function(result){
alert(result);
}
});
});
});
</script>
</html>
04-24 13:02
查看更多