< 返回版块

C-Jeril 发表于 2024-02-23 10:05

向大家求证一下,这是不是前端的设置出了问题 vscode试运行的情况下,cors跨域问题一直没有得到解决,后端改了很多次了,无论是指定还是不指定,都不行;并且前端每次请求过来后端都有日志生成。

前端浏览器只要不打开cors插件,就一直卡报错,只要打开cors插件就能用

{
    "message": "Network Error",
    "name": "AxiosError",
    "stack": "AxiosError: Network Error\n    at XMLHttpRequest.handleError (http://localhost:5173/node_modules/.vite/deps/axios.js?v=dfff3feb:1450:14)\n    at Axios.request (http://localhost:5173/node_modules/.vite/deps/axios.js?v=dfff3feb:1780:41)\n    at async drawCardAPI (http://localhost:5173/src/api/drawcard.ts:12:22)\n    at async Proxy.drawCard (http://localhost:5173/src/components/drawcard.vue:19:28)",
    "config": {
        "transitional": {
            "silentJSONParsing": true,
            "forcedJSONParsing": true,
            "clarifyTimeoutError": false
        },
        "adapter": [
            "xhr",
            "http"
        ],
        "transformRequest": [
            null
        ],
        "transformResponse": [
            null
        ],
        "timeout": 0,
        "xsrfCookieName": "XSRF-TOKEN",
        "xsrfHeaderName": "X-XSRF-TOKEN",
        "maxContentLength": -1,
        "maxBodyLength": -1,
        "env": {},
        "headers": {
            "Accept": "application/json, text/plain, */*"
        },
        "baseURL": "http://localhost:3000",
        "method": "get",
        "url": "/api/cards/draw"
    },
    "code": "ERR_NETWORK",
    "status": null
}


// 定义应用路由
pub fn app_router(pool: DbPool) -> Router {
    let cors = configure_cors();

    Router::new()
        .layer(cors) // 添加跨域资源共享(CORS)中间件
        .route("/api/cards/draw", options(options_handler)) // 处理跨域资源共享(CORS)预检请求
        .route("/api/cards/draw", get(draw_card_handler)) // 抽卡应用
        // ... 其他路由 ...
        .layer(Extension(pool)) // 将数据库连接池作为共享状态
}

评论区

写评论
作者 C-Jeril 2024-02-25 21:49

感谢提醒

--
👇
潜水的猫: 中间件需要看具体的框架实现,有些是正序有些是倒叙

潜水的猫 2024-02-24 19:32

中间件需要看具体的框架实现,有些是正序有些是倒叙

作者 C-Jeril 2024-02-23 11:33

已搞定,再次感谢;最终还是调整了顺序以后通了。不知道为什么gpt和一些工具里面对于洋葱模型的认识,一直认为是3412的顺序,实际上应该是1234的顺序。

pub fn app_router(pool: DbPool) -> Router {
    let cors = configure_cors();

    Router::new()
  1      .route("/api/cards/draw", get(draw_card_handler)) // 抽卡应用
  2      .route("/api/cards/draw", options(options_handler)) // 处理跨域资源共享(CORS)预检请求
  3      .layer(cors) // 添加跨域资源共享(CORS)中间件
  4      .layer(Extension(pool)) // 将数据库连接池作为共享状态
                                // ... 其他路由 ...
}


--
👇
Nayaka: 洋葱模型了解一下,你cors的layer错了 https://rustcc.cn/article?id=574c7336-97e6-4bc1-b4bf-5b2b8ce92844

作者 C-Jeril 2024-02-23 11:02

在发布前也看了这个,哈哈,还不太熟悉,还需要学习

--
👇
Nayaka: 洋葱模型了解一下,你cors的layer错了 https://rustcc.cn/article?id=574c7336-97e6-4bc1-b4bf-5b2b8ce92844

作者 C-Jeril 2024-02-23 11:01

感谢

👇
Nayaka: 洋葱模型了解一下,你cors的layer错了 https://rustcc.cn/article?id=574c7336-97e6-4bc1-b4bf-5b2b8ce92844

Nayaka 2024-02-23 10:28

洋葱模型了解一下,你cors的layer错了 https://rustcc.cn/article?id=574c7336-97e6-4bc1-b4bf-5b2b8ce92844

1 共 6 条评论, 1 页