可以使用 Cloudflare Workers 来解决跨域访问后端的问题。

Cloudflare Workers 是一种基于 JavaScript 的无服务器平台,可以在 Cloudflare 的边缘节点上运行代码,可以实现一些高级的边缘计算功能。使用 Cloudflare Workers 可以在边缘节点上执行一些中间件逻辑,比如处理跨域请求。

以下是一个使用 Cloudflare Workers 处理跨域请求的示例代码:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const url = new URL(request.url)
  const apiURL = 'https://backend.example.com/api'
  const headers = { 'Access-Control-Allow-Origin': '*' }

  if (url.pathname.startsWith('/api/')) {
    // 构造向后端发送请求的 URL
    const apiReqURL = apiURL + url.pathname.substring(4) + url.search

    // 发送请求到后端
    const apiRes = await fetch(apiReqURL, {
      method: request.method,
      headers: request.headers,
      body: request.method != 'GET' ? request.body : null
    })

    // 构造返回给前端的响应
    const apiResHeaders = new Headers(apiRes.headers)
    apiResHeaders.set('Access-Control-Allow-Origin', '*')
    const apiResBody = await apiRes.text()
    const apiResStatus = apiRes.status

    return new Response(apiResBody, {
      headers: apiResHeaders,
      status: apiResStatus
    })
  } else {
    // 如果不是 API 请求,直接返回 index.html
    const indexHTML = await fetch('https://example.com/index.html')
    return new Response(indexHTML.body, {
      headers: headers,
      status: 200
    })
  }
}

该代码会将前端页面请求的 API 请求转发到后端,并添加 Access-Control-Allow-Origin 头部以实现跨域访问。在 Cloudflare Workers 控制台中,可以将该代码部署为一个 Worker,然后将 Cloudflare Page 配置为使用该 Worker 处理跨域请求

cloudflare page部署的vue项目怎么解决跨域访问后端

原文地址: https://www.cveoy.top/t/topic/gtPj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录