同一个IP不同端口的JS跨域问题
?
问题:我这边有一个即时通信的服务器,提供给开发人员一个JS API来访问这个通信服务器,然而开发人员把JS文件拷贝到本机的web应用时去调用远程的即时通信服务器,出现了跨域的情况。现在我们这边只通了JS的api,因此必须解决这个跨域的问题。
?
解决方案:将apache服务器和web应用服务器放在同一个服务器上,分别处于不同的端口,通过 document.domain=”IP地址” 设置域来发送请求给apatch服务器界面,最终返回即使通信服务器的响应内容。
?
1、在本机上安装一个apache,默认端口是80,然后里面添加如下内容
?
2、在开发应用上添加如下界面,使用的是tomcat容器,端口是8080
?
在地址栏中输入:http://172.16.14.77:8080/myweb/current.jsp,点击按钮,把当前用户输入的值传入到iframe里面,然后由iframe里面的界面提交表单发送请求,最终交由apache处理请求。
?
备注:地址栏一定要是172.16.14.77,不能用于localhost,因为浏览器判断是否是是跨域没有经过DNS服务器转换,仅仅是根据地址栏中的172.16.14.77:8080判断的,否则两个页面中输入的document.domain = "172.16.14.77";会导致脚本报错
?
运行结果