可以使用 Cloudflare Workers 来解决跨域访问后端的问题。下面是一个示例代码:

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

async function handleRequest(request) {
  // 检查请求的路径是否为 '/api'
  if (request.url.endsWith('/api')) {
    // 构造请求头
    const headers = new Headers(request.headers)
    headers.set('Origin', 'https://example.com') // 设置允许跨域访问的域名

    // 构造请求,并发送到后端服务器
    const url = 'https://backend.example.com/api'
    const newRequest = new Request(url, {
      method: request.method,
      headers,
      body: request.body,
      redirect: 'follow'
    })
    const response = await fetch(newRequest)

    // 构造响应头
    const newHeaders = new Headers(response.headers)
    newHeaders.set('Access-Control-Allow-Origin', 'https://example.com') // 设置允许跨域访问的域名

    // 构造响应,并返回给前端
    return new Response(response.body, {
      status: response.status,
      statusText: response.statusText,
      headers: newHeaders
    })
  }

  // 如果不是 '/api' 路径的请求,则直接返回原始请求
  return fetch(request)
}

在上面的代码中,我们首先检查请求的路径是否为 '/api'。如果是,就构造一个新的请求并发送到后端服务器,然后将响应返回给前端。在这个过程中,我们需要设置允许跨域访问的域名,以确保前端可以正常访问后端。

如果请求的路径不是 '/api',则直接返回原始请求。这样可以确保其他的请求不受影响。

需要注意的是,以上代码只是一个示例,实际应用中需要根据具体情况进行修改。

Cloudflare Workers 解决 Vue 项目跨域访问后端问题

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

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