前端跨域问题

小宇
  • 423

在postman中是可以的请求到的,在浏览器中虽然报跨域但状态是200,就是没返回任何东西,请问只靠前端怎么解决呢
clipboard.png

回复
阅读 1.7k
5 个回答
littleLyon
  • 7.8k
✓ 已被采纳

只靠前端浏览器解决不了,各种解决方案都需要服务端配合。


update:
我把前端改成了浏览器,这样应该没有歧义了。

这个服务端是广义的,用 webpackhttp-proxy、各种 proxy middleware,还有用 nginx,这其实已经跳出纯前端范围了。

开发阶段前端直接使用反向代理即可,部署时确实需要服务端配合才行,不然其实前端单独做反向代理的话感觉不是特别好呢

服务端设置跨域资源共享CORS

htpp-proxy-middleware
webpack(自带)
gulp

这三种工具都可以,原理是反向代理。至于具体的方法请自行百度,本人能力有限。
还有上边大佬说的只靠前端解决不了,各种解决方案都需要服务端配合。持保留意见,没了解过。
但这三种确实是前端解决跨域的方式,而非后端。

webpack 中的proxy设置可以解决这一问题

// 然后你原来的请求地址是<url>/getuerinfgo => /api/getuerinfgo 
module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: '<url>',//请求的url
        ws: true,
        changeOrigin: true
      }
    }
  }
}

开发环境下用,生产环境最好还是通过后端配置解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏