前后端分离

在这里插入图片描述

ajax

VsCode 插件

在这里插入图片描述
作用:模拟一个默认在5500端口的本地服务

jq ajax主要参数
$.ajax({
    //请求方式
    type:'POST',
    //发送请求的地址
    url:'fzz.php',
    //服务器返回的数据类型
    dataType:'json',
    //发送到服务器的数据,对象必须为key/value的格式,jquery会自动转换为字符串格式
    data:{name:xxx,age:xxx},
    success:function(data){
        //请求成功函数内容
    },
    error:function(jqXHR){
        //请求失败函数内容
    }
});
ajax跨域问题

http://www.ruanyifeng.com/blog/2016/04/cors.html

ajax跨域问题解决

已springboot为例:

1.注解形式允许跨域

@CrossOrigin(origins = "http://127.0.0.1:5500")

2.配置形式允许跨域

@Configuration
public class CorsConfig {

    public CorsConfig(){

    }

    @Bean
    public CorsFilter corsFilter(){
        //1.添加cors配置信息
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("http://127.0.0.1:5500");
        //设置是否发送cookie信息
        config.setAllowCredentials(true);
        //设置允许请求的方式
        config.addAllowedMethod("*");
        //设置允许的header
        config.addAllowedHeader("*");

        //2.为url添加映射路径
        UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
        corsSource.registerCorsConfiguration("/**",config);

        //3.返回重新定义好的corsSource
        return new CorsFilter(corsSource);
    }
}

3.还有很多其他的方式不一一距离原理一样,包括不同语言不同框架的具体实现方式也不一一举例 可以自行百度 有问题再问

ajax跨域复杂请求(cookie,session)

如果要使用cookie,session等需要开启允许复杂请求

例子:

$.ajax({
    type:"POST",
    xhrFields:{
        withCredentials: true
    },
    url: "http://127.0.0.1:8080/login",
    contentType:"application/json",
    data: JSON.stringify(data),
    success: function(data){
        console.log(data)
        if(data.result == "success"){
            location.href = "index.html";
        }
    },
})
xhrFields:{
    withCredentials: true
},

作用:允许复杂请求 ,相同的也要在服务端允许 参考上面(具体其他语言框架实现自行百度,有问题再问)

//设置是否发送cookie信息
config.setAllowCredentials(true);
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐