ing 发表于 2019-7-4 16:36

服务端配置了允许跨域,还跨域请求失败

本帖最后由 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);
          });
      });
});

海东青 发表于 2019-7-4 16:50

浏览器改一下允许跨域

Light紫星 发表于 2019-7-4 16:51

设置请求头

onenook 发表于 2019-7-4 16:53

// 跨域请求设置
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"); // 设置允许自定义请求头的字段

服务端添加试试

Vvvvvoid 发表于 2019-7-4 17:05

是 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");

wabmlpb 发表于 2019-7-4 18:01

controller 层方法前 加@CrossOrigin 注解 就行了

Do_zh 发表于 2019-7-4 18:40

如果是跨域。这个就成。response.setHeader("Access-Control-Allow-Origin", "*");

mashuaizhijia 发表于 2019-7-4 20:28

Access-Control-Allow-Headers 需要设置的和你的前端访问的时候一样的才行,我前几天刚才这个坑里爬出来
页: [1]
查看完整版本: 服务端配置了允许跨域,还跨域请求失败