Web/H5站点Js跨域问题解决方案一、目的介绍
公司的Web/H5站点,前台采用静态html+js的方式来处理,后台用Java Or ,这样在使用的过程中,很有可能就会遇到JS跨域问题,这个问题目前网络上大多采用有采用Jsonp的方式,也是da多的采用这种方式,但是,有时候,一些数据量比较大,不想将其数据暴露在请求字符串QueryString中。这样一来,Jsonp这种方式就不合适了,就需要采取其他的方式来处理。
二、问题分析
我们来分析下,主要的问题是JS跨域,直白一点的话,就是说JS请求的路径跟JS所在的路径,不在一个域名下面。那么我们只要解决这个问题就可以了,我们可以做下域名映射就可以了!Nginx可以完美的解决域名映射的问题。这样我们就能够把JS跨域的问题完美的解决掉了!
三、站点部署
可以按照原有的方式来部署,我原来是按照Tomcat的方式来进行部署,网上有很多关于这方面的说明与教程,在此就不在过多描述!
四、N ginx安装部署
Nginx的下载,网上有一大堆的下载链接,我就不在多说,我下载的版本是Nginx 1.6.3的,可能版本比较老了,但是够用就行!其他不多少。
Nginx用户很多都是在linux下做的部署,我的开发环境是win7,所以我只能是想办法将其安装在win7下,至于看官要将其安装到linux或其他系统下,请自行在百度上搜索相关资料做安装。
4.1.安装nginx
在nginx安装的时候,我采用的winsw的方式,将其安装到window系统里面,做成一份service的方式,让其开机自动运行。
至于Winsw的相关资料:blog.csdn/u011054333/article/details/69992995 可通过上述链接查看。
我将nginx放在D:\java下,所以,执行的时候,如下图所示
运行cmd命令,如下图:
安装启动后,如下图所示。
4.2. f配置
将f文件中原有的server节点注释掉,新建多个conf 文件,文件中为server节点内容,server节
点为不同的域名。
在f文件中http节点结尾处,添加include节点。
Linux下:
include /etc/nginx/conf.d/*.conf; ---将新建的多个conf文件都包含进来,这样即可支持多域名应用。
Windows下:
Windows系统需要将其分开添加:
✓include D:\java\nginx-1.6.3\conf.f; ---将新建的多个conf文件都包含进来,这样即可支持多域名应用✓include D:\java\nginx-1.6.3\conf.f; ---将新建的多个conf文件都包含进来,这样即可支持多域名应用✓include D:\java\nginx-1.6.3\conf.f; ---将新建的多个conf文件都包含进来,这样即可支持多域名应用
4.4.站点conf配置
内容如下:
server {
listen 82; ---监听的端口
server_namelocalhost; ---监听的域名
#首页配置
root E:\\Work\\SVN\\repo\\trunk\\h5; ---站点部署的地址,这里是指静态文件的地址,主要是html,或js等静态文件,不通过tomcat或IIs等容器来部署,直接通过nginx来进行展示。
nginx停止命令index index.html index.htm; ---首页映射
charset utf-8;
#接口跳转
location / {
#concat on;
#concat_max_files 20;
#如果请求的文件或目录不存在,则请求负载均衡站点
if (!-e $request_filename)
{
proxy_pass my-backend;
break;
}
}
#location ^~/index/{
#index index.html index.htm;
#虚拟目录
#alias E:\\Work\\SVN\\repo\\trunk\\h5;
#}
#html文件映射
location ~ .*.html {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论