服务端配置了允许跨域,还跨域请求失败
本帖最后由 ing 于 2019-7-11 09:56 编辑web.xml文件
<!--配置允许跨域访问-->
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
js
$(document).ready(function(){
$("button").click(function(){
$.post("http://127.0.0.1:8080/admin/login",
{
username:"admin",
password:"123456"
},
function(data,status){
console.log("数据:" + data + "\n状态:" + status);
console.log(data.bodyText);
});
});
});
浏览器改一下允许跨域 设置请求头 // 跨域请求设置
header('Content-Type: text/html;charset=utf-8');
header("Access-Control-Allow-Origin: *"); // *代表允许任何网址请求
header("Access-Control-Allow-Methods: POST,GET,OPTIONS,DELETE"); // 允许请求的类型
header("Access-Control-Allow-Credentials: true"); // 设置是否允许发送 cookies
header("Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin"); // 设置允许自定义请求头的字段
服务端添加试试 是 java 吧 ,
写一个 , filter 添加以下 header
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Allow-Credentials","true"); controller 层方法前 加@CrossOrigin 注解 就行了 如果是跨域。这个就成。response.setHeader("Access-Control-Allow-Origin", "*"); Access-Control-Allow-Headers 需要设置的和你的前端访问的时候一样的才行,我前几天刚才这个坑里爬出来
页:
[1]