8.node中间件代理跨域

8.node中间件代理跨域,第1张

实现的原理和代理服务器原理如出一辙,只不过这里使用了Node中间件做为代理。需要注意的是, 浏览器向代理服务器请求时仍然遵循同源策略 ,别忘了在Node层通过CORS做跨域处理:

const https = require('https')

// 接受客户端请求

const sever = https.createServer((req, res) =>{

  ...

  const { method, headers } = req

  // 设置 CORS 允许跨域

  res.writeHead(200, {

    'Access-Control-Allow-Origin': '*',

    'Access-Control-Allow-Methods': '*',

    'Access-Control-Allow-Headers': 'Content-Type',

    ...

  })

  // 请求服务器

  const proxy = https.request({ host: 'xxx', method, headers, ...}, response =>{

    let body = ''

    response.on('data', chunk =>{ body = body + chunk })

    response.on('end', () =>{

      // 响应结果转发给客户端

      res.end(body)

    })

  })

  // 结束请求

  proxy.end()

})

可以使用服务器代理或者在后端设置允许跨域。

现在的项目一般是在后端设置允许跨域,前端在带有允许跨域的情况下,可以像没有跨域一样正常访问。

如果前端单独发布到服务器,也可以在服务器是设置代理,使用代理转发请求。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7792983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存