Mar 19

跨域上传 不指定

bkkkd , 22:44 , 开发应用 , 评论(0) , 引用(0) , 阅读(4291) , Via 本站原创 | |
js的跨域问题一直很让前端开发头痛。因为只在大一些的应用都会有多个域名。最常用的应用的就是上传。

一般架构上考虑读写压力,会都会把图片等附件上传的功能单独一台服务器或者一个域名,可问题就来了。

html无论是html4还是html5都不允许跨域请求。反正返回来的东西就是空白。

但事实上不是这样,真实情况事:

返回来的东西被浏览器限制了

假如直接允许js直接访问非当前网站的内容时,访问网站A时,网站A的某个js程序请求网站B的某个服务。如登录,上传或者获取机密的数据。而这些都是发生在用户不知情的情况。

所以必须限制不是同一个网站下获取内容。

而实际情况下,多个域名确实是属性同一个服务,跨域被限制了会带来很多不便。解决方案就是:
只需要网站B的服务在返回时增加一个头信息,浏览器就会允许请求的域名。

Access-Control-Allow-Origin: http://atim.cn


其实http://atim.cn这个域名
是由浏览器根据请求发生时的页面url分析出来,并通过header信息传给B服务器

Origin: http://www.a3.com



考虑安全,所以不建议把Access-Control-Allow-Origin设置为*,除非这是公用服务

实际上大家把这个解决方案叫:Cross-Origin Resource Sharing,跨域资源共享,简称 CORS。
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]