总结前端跨域解决方案

其实什么是跨域,跨域的实现方式有哪些的问题并不复杂,但是又很多的朋友都不太了解web接口跨域解决办法,因此呢,今天小编就来为大家分享什么是跨域,跨域的实现方式有哪些的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

  1. 接口编程中,为什么只用get和post
  2. 什么是跨域,跨域的实现方式有哪些
  3. web前端项目经验怎么写范例
  4. Web项目开发为何要走前后端分离模式

接口编程中,为什么只用get和post

就为这事,上家公司一前端和后端干起来了,后端写了一接口,用put请求方式,前端开发在火狐浏览器上提示跨域,跨域是nginx统一处理的,换google浏览器、360浏览器都正常访问。然后就让后端看看,后端这哥们不管三七二十一,说在postman请求是ok的,前端这个时候不干了,你这接口访问跨域意味着接口不通呀,要求换成POST,后端同学不干,说我这个是遵循resultful规范的,修改数据就得用PUT,不应该是POST,而且我用postman请求是ok的。

问题来了,这种事情到底是前端处理还是后端处理?

从技术角度来说,我们应该是解决问题,而不应该规避问题对吧?

解决问题的前提是得发现产生问题得本质原因是什么,如果问题能解决,大家就一起解决,如果这个问题属于三方问题,那就只能去规避这个问题。

后来经过大家检查发现是火狐浏览器的一个小bug,不容易复现,那这个问题没法解决了,这个时候就协商让后端改成POST试试,那后端就愿意改了。

后端这哥们的态度就是:“你要说你不行,那咱就给你解决,但是你不能说是我的问题”。

故事说完了~

restful应不应该用?

我个人是倾向于在接口编程中只用get和post的,任你resultful规范的接口说的天花乱坠,可是我写的接口就两种:数据查询就GET,数据变更就POST。但是我也从不限制别人使用PUT、DELETE请求。

但是需要有一些注意的地方,比如有的接口统计是基于nginx日志的,那么resultful风格的接口可能给统计带来一些问题或者额外的工作量。

例如一个商品详情接口:GETxxx/goods/1

你说你要统计这个接口的访问数量,就得走匹配模式,如果是多参数的,或者没有规则前缀的那就无法统计了。

还有的老项目,接口交互用的是表单形式,而不是application/json,那就是清一色的post接口,你也别想着什么规范不规范了。

最重要的一点:接口是写给客户端用的,要和客户端多商量,定义好接口文档。

什么是跨域,跨域的实现方式有哪些

查了一些资料,再结合我之前的了解,给大家介绍一下,如果有说的不对的地方,请大家留言指正。

什么是跨域

浏览器有一个毛病(策略):请求url的协议、域名、端口必须相同,才允许访问(通信),否则就不允许访问,是跨域。

https(协议)://www.wukong.com(域名和端口)/index.html

比如:

https://www.wukong.com/index.html

http://www.wukong.com/index.html

这样就不允许通信,因为协议不同。

完整的举个例子:

你有服务器A和服务器B,服务器A上存着CSS和JS脚本,服务器B上存着HTML,HTML页面上的CSS和JS都是链接的服务器A上面的。

然后用浏览器打开服务器B上面的xxx.html,页面打开后可以正常渲染出样式,可以运行JS脚本,这样就是跨域名,跨端口,跨协议。

如何解决跨域

JSONP:利用了script标签不受同源策略的限制,通过script加载服务器A的资源。

Proxy代理:使用服务器接口做代理,因为同源策略之针对浏览器。

CORS:跨域资源共享,这个就是浏览器后悔了,出了一个跨域访问机制(XMLHttpRequest),低版本IE不支持。

Postmessage:HTML5新增的跨域机制。

Nginx反向代理:相当于Proxy代理。

希望我的回答可以帮助到你!

web前端项目经验怎么写范例

写web前端项目经验时,可以按照以下模板进行写作:

1.项目名称和时间

在项目经验的开头,写明项目的名称和时间,以便阅读者对您的项目经验有个基本的了解。

2.项目背景

简要介绍项目的背景和目的,解释为什么需要该项目,以及它是如何满足用户需求的。

3.技术栈

列出您在项目中使用的技术和工具,这有助于让阅读者了解您在项目中使用的技术和工具。

4.实现的功能

列出您在项目中实现的功能,以及如何实现这些功能。这有助于让阅读者了解您在项目中的具体工作内容。

5.遇到的问题和解决方案

列出您在项目中遇到的问题和解决方案,以及您的思考过程。这有助于让阅读者了解您的解决问题的能力和思考方式。

6.成果和收获

简要介绍您在项目中取得的成果和收获,以及对您的职业发展的影响。这有助于让阅读者了解您的项目经验对您的成长和发展的影响。

下面是一个web前端项目经验范例:

项目名称和时间:XXX公司网站前端开发项目,2020年3月-2020年6月

项目背景:XXX公司需要一个新的网站来展示他们的产品和服务,提高品牌知名度和销售量。

技术栈:HTML、CSS、JavaScript、jQuery、Bootstrap、Photoshop等。

实现的功能:设计并开发了网站的主页、产品介绍页面、服务页面、联系我们页面等。使用Bootstrap框架和jQuery库,实现了响应式布局和交互效果。使用Photoshop设计了网站的主题和图片。

遇到的问题和解决方案:在开发过程中,遇到了响应式布局和浏览器兼容性问题。通过使用Bootstrap框架和CSS媒体查询,解决了响应式布局问题。通过检查代码并使用CSS前缀,解决了浏览器兼容性问题。

成果和收获:通过这个项目,我学会了如何使用Bootstrap框架和jQuery库来开发响应式网站,并提高了我的Web前端开发技能。同时,我也学会了如何解决问题和沟通团队成员,这对我的职业发展带来了积极的影响。

Web项目开发为何要走前后端分离模式

把前端与后端独立起来去开发,放在两个不同的服务器,需要独立部署,两个不同的工程,两个不同的代码库,不同的开发人员,前后端工程师需要约定交互接口,实现同步开发,开发结束后需要进行独立部署,前端通过接口来调用调用后端的API,前端只需要关注页面的样式与动态数据的解析和渲染,而后端专注于具体业务逻辑。具体好处有以下几点:

1.彻底解放前端

前端不再需要向后台提供模板或是后台在前端html中嵌入后台代

2.提高工作效率,分工更加明确

前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。

3.局部性能提升

通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。

4.降低维护成本

通过目前主流的前端MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。

5.实现高内聚低耦合,减少后端(应用)服务器的并发/负载压力。

6.即使后端服务暂时超时或者宕机了,前端页面也会正常访问,但无法提供数据。

7.可以使后台能更好的追求高并发,高可用,高性能;使前端能更好的追求页面表现、速度流畅、兼容性、用户体验等。

OK,本文到此结束,希望对大家有所帮助。

解决跨域的几种方法