前后端分离的疑惑,思考

现在很多人常说前后端分离,前后端分离。菜鸟一只,有如下疑惑求解!

  • 早期前端开发都是前端人员给后端人员静态页面,由他们完成请求部分(相信这依然是很多公司采用的方式),那么在碰到一些请求例如ajax,需要怎么办?(请看如下代码)

$.ajax({
    url: "test.json",
    success:function(){
        alert('请求成功');
    }
})
/*
*例如上面的代码,就是一个很简单的请求
*通常来说后端的人员他们的电脑里面都一个本地服务的环境,
*他们或许会在url参数里面写/a/b/x/aaa.json或者其他url(但是通常他们会很少会碰到跨域的问题)
*/

如果采用了前后端分离的策略,他们可能会给一个www.abcd.XXXXX/ssss/等类似的url参数,而前端此时如果这样写参数就会碰到跨域的问题,又不得不去解决跨域的问题,但是等到实际项目上线的时候这样的东西很可能却不会产生跨域的问题,此时我们前端处理跨域的部分代码又会显的多余,请问当大家碰到这样的问题的时候都是采用如何解决的?

  • example
    例如:我们现在有一个需求叫做下拉加载更多的新闻列表,这是一个很常见的需求吧

//假设已经算了高度,下面的代码只是请求部分

$.ajax({   //后端人员的代码,在他们的环境下是不会跨域
    url:server/a/b/c.json
    success:function(){
        解析数据,dosomething
    }
})

$.ajax({  //前后端分离后前端的代码
    url:www.abcd.com/server/a/b/c.json  //此时前端就会产生跨域,而又不得不去解决跨域例如jsonp
    success:function(){
        解析数据,dosomething
    }
})

因为现在这边仅仅是一个新闻列表,不是什么敏感的数据,那么如果这边跨域处理的是一些敏感数据的话安全性又该怎么办?如何可以保证安全

大家都来说说在前后端分离的时候,你们都是采用什么样的具体的方式吧,以及在处理跨域的时候都会用什么样的办法?关于我上面说的痛点,有没有什么好的解决办法,或者可以提供一点参考意见!

阅读 4.9k
10 个回答

服务器配置CORS就可以跨域了,参考CORS MDN

作为一个小公司的菜鸟前端,我觉得前后端的话题离我好远。工作中,后端把我需要的数据给我,或者我能拿到我需要的后端数据就可以了

正规开发流程的话是有开发服务器的,前后端人员在同一个开发服务器开发。
目前后端的借口设计都是以RESTful架构设计,前后端一分离跨域请求就必须打开。
请求敏感数据的话就是归接口验证处理。服务端对接口对安全性必须设计一套验证逻辑

  1. 搭建和后端一样的环境

  2. 本地搭建一个代理服务器

  3. 使用 mock 数据。

我们当时用了一个withcredentials 不知道能不能帮到你

jquery直接支持jsonp啊,简单粗暴直接

跨域的问题应该不是前端操心的,我这里都是后端处理

顶下跨域头,CORS,简单到后端(开发服务器后端,或者你自己写的node)设置下。就不用处理跨域了。

本地开发遇到跨域(线上不会)大概有2个方案吧
mock数据
配置虚拟主机映射域名出来

个人比较倾向于第一种

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