html - 弱弱的问一个跨域的问题
问题描述
比如,同一台服务器上,网站主目录绑定到www.domain.com上,网站后台绑定到www.domain.com:8080上。
即便端口不同也会被当做跨域吧? 感觉这种情况跨域有点冤,而且POST也没有不跨域方便吧?
各位大大有什么好办法解决一下这个问题吗,能通过某些设置而让网站和后台之间不跨域吗?这种网站和后台分离的方式迟早要面对跨域的问题,是吗?
问题解答
回答1:跨站的解决方案很多,常见的是JSONP,代理转发,还有就是HTLM5的Allow Orgin允许跨站访问的新功能。
你这种情况,建议在网站的Ngingx设置个代理,转发到网站后台就可以了,配置大概是这样的:
upstream backend { server backend1.example.com:8080;}server { location /api {proxy_pass http://backend; }}
在前端页面,通过ajax访问的地址为:http://www.example.com/api/xxx
回答2:端口不同本来就是不同的站点,站点与站点之间就是跨域啊!通过分开前后台,是可以让网站比较安全,也可以分端维护,我觉得没必要去用前端跨域请求后台,这样会把后台曝露了,而且程序设计上也不应该通过前端跨域取数据吧!除非你数据库是文件型数据库Access或sqlite这类,那就是你设计上的问题,请求数据只需要有数据连接就可以的了。没必要跨域。
相关文章:
1. java - JPA连接数据库,一段时间没有数据操作会关闭连接,再次访问就会抛出异常,如何解决?2. python - flask jinjia2 中怎么定义嵌套变量3. python开发的脚本想上个ui,用哪个库来绘制窗口比较好?求推荐4. html - css 文件内,有的样式没调用, 有没有工具删除这部分没调用的内容?5. javascript - Chrome 扩展,更新别人的扩展 能不能上传到插件商店?6. javascript 如何下载一个excel文件 ?7. Mysql取下一条记录8. mysql federated引擎无法开启9. Chrome-org.openqa.selenium.WebDriverException:未知错误:无法在driver.manage()window()maximize();处获得自动化扩展10. 清除nginx的文件缓存

网公网安备