前后端分离项目跨域请求

一、前端vue项目

在项目中创建request.js文件,添加以下内容

import axios from "axios";
const api = axios.create(
    {  //这里配置的是后端服务提供的接口
        baseURL: "http://localhost:8080/web-demo",
        timeout: 1000
    }
);
export default api;

在main.js中添加

import {createApp} from 'vue'
import App from './App.vue'
import router from './route/index'  // 导入路由器
import axios from './request' //引入request.js

// 超时时间是5秒
axios.defaults.timeout = 5000;
// 当前请求为跨域类型时是否在请求中协带cookie
axios.defaults.withCredentials = true

let app=createApp(App)
app.use(router) // 使用路由
app.provide("$axios", axios);
app.mount('#app')
//配置axios的全局引用
app.config.globalProperties.$axios = axios;

xxx.vue中使用方式:

api({
            url: "/book/delBook", // 服务端地址
             method: "post", // 请求方式
            params: {"ids": ids} // 携带参数
        }).then((res) => { // 成功触发函数
               res.data // 服务端返回的json数据 
            }
        );

二、Servlet项目解决跨域请求问题

使用过滤器对响应头进行设置

package com.buba.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author 杨柳
 * @title MyFilter 对跨域请求进行设置
 * @date 2023/11/28 14:32
 */
@WebFilter("/*")
public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request
            , ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse resp = (HttpServletResponse) response;
        // 当前端携带cookie时,这里的值不能设置成*
        resp.setHeader("Access-Control-Allow-Origin", req.getHeader("origin"));
        resp.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
        resp.setHeader("Access-Control-Max-Age", "3600");
        resp.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type");
        resp.setHeader("Access-Control-Allow-Credentials", "true");

        chain.doFilter(request, response);
    }
}

相关推荐

  1. 前后分离项目请求

    2023-12-09 17:52:02       55 阅读
  2. Fastapi+Jsonp实现前后请求

    2023-12-09 17:52:02       52 阅读
  3. 前后问题

    2023-12-09 17:52:02       54 阅读
  4. Vue前后链接

    2023-12-09 17:52:02       61 阅读
  5. 前端怎么实现请求

    2023-12-09 17:52:02       41 阅读
  6. 前端怎么实现请求

    2023-12-09 17:52:02       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 17:52:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 17:52:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 17:52:02       82 阅读
  4. Python语言-面向对象

    2023-12-09 17:52:02       91 阅读

热门阅读

  1. 小红书引流攻略:掌握策略,轻松吸引潜在客户

    2023-12-09 17:52:02       61 阅读
  2. 【C++】指针与new的使用

    2023-12-09 17:52:02       53 阅读
  3. 如何正确看待钱?

    2023-12-09 17:52:02       59 阅读
  4. C++牛客知识点2

    2023-12-09 17:52:02       59 阅读
  5. vue3常用的api

    2023-12-09 17:52:02       55 阅读
  6. 【PID学习笔记 9 】控制系统的分析方法之二

    2023-12-09 17:52:02       61 阅读
  7. 请介绍一下MySQL的存储引擎及其特点

    2023-12-09 17:52:02       47 阅读
  8. go语言学习-包管理

    2023-12-09 17:52:02       64 阅读