js跨域访问服务器

霜月枫桥 2016-10-08 05:55:20
首先,两个域名和他们分别对应的IP分别为
192.168.142.52 one.test.com
192.168.152.18 two.test.com
它们的端口都是8080,。
用户访问one.test.com:8080中的页面,输入用户名和密码,点击提交。one.test.com中页面的js通过ajax将用户名和密码传到two.test.com服务器中的某一个servlet中,经过处理后,返回给one.test.com。
one.test.com中ajax的url示例为:http://two.test.com:8080/json/authenticate

我想知道1、这算不算跨域获取信息;2、在用户名和密码正确的前提下,one.test.com能不能收到two.test.com返回给他的信息;3、如果可以接受的话能给我one.test.com中ajax那块的具体代码吗。
...全文
242 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WitsonX 2016-10-10
  • 打赏
  • 举报
回复
你单词打错了, 是domain不是domian 还有一个错误就是 你的domain要赋值成 test.com 不是 .test.com ajax.htm 这个文件放于two服务器
<HTML>
<HEAD>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</HEAD>
<script type="text/javascript">
	document.domain='test.com';
	function funAjax(sURL,data, callback){
		//这实现一下Ajax Post
	}
</script>
<BODY>
</BODY>
</HTML>
one服务器请求
<HTML>
<HEAD>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</HEAD>
<script type="text/javascript">
	document.domain='test.com';
	function funTest(){
		frameTest.funAjax(
					'xxxxURL',
					{},
					function(json){}
		);
	}
</script>

<BODY>
	<input type="button" onclick="funTest" value="test">
	<iframe name="frameTest" id="frameTest" frameborder="0" src="http://two.test.com/ajax.htm"></iframe>
</BODY>
</HTML>
霜月枫桥 2016-10-09
  • 打赏
  • 举报
回复
引用 7 楼 WitsonX 的回复:
[quote=引用 4 楼 MOONCOM 的回复:] [quote=引用 3 楼 WitsonX 的回复:] 很明显跨域了,你有以下3种方案: 1. two服务器返回的http加上Access-Control-Allow-Origin (请自行百度),缺点:仅支持HTML5的浏览器适用 2. 采用JSONP请求 (自行百度),注: JSONP是以GET方式请求, 同时服务器返回的数据也应进行相应的改造 3. 采用嵌套iFrame并修改document.domain 实现跨域请求 (自行百度 "document.domain 跨域" )
首先,非常感谢你的帮助。其次,由于各种原因,我无法修改示例中two.test.com服务器的信息,所以你的方法1、2便无法使用了。关于你的方法3,根据我从网上看到的资料,在js的开头处加上document.domain=".test.com";就可以了吗,我在js中加入了document.domain=".test.com";,但是ajax却依旧无法访问http://two.test.com:8080/json/authenticate,无法进入ajax的success方法。[/quote] 这三种方法都必须改two服务, 方法1 改http头 方法2 改返回格式 方法3 在two服务器放一个html文件 如果你什么都动不了的话, 只能用方法4了 自己在one服务器上进行http请求, one服务器请求自己的服务器, 再由服务器进行请求[/quote] 恩,你说的方法4我知道,通过Java的URL类。 另外,就方法3,我上面有一点说错了,two服务器的html我可以改,并且在今天的调试中,我也在two服务器的一个页面上加上了document.domian=".test.com";,但是没有成功。对了,你能说一下two服务器需求添加怎样的一个页面吗,谢谢。
WitsonX 2016-10-09
  • 打赏
  • 举报
回复
引用 4 楼 MOONCOM 的回复:
[quote=引用 3 楼 WitsonX 的回复:] 很明显跨域了,你有以下3种方案: 1. two服务器返回的http加上Access-Control-Allow-Origin (请自行百度),缺点:仅支持HTML5的浏览器适用 2. 采用JSONP请求 (自行百度),注: JSONP是以GET方式请求, 同时服务器返回的数据也应进行相应的改造 3. 采用嵌套iFrame并修改document.domain 实现跨域请求 (自行百度 "document.domain 跨域" )
首先,非常感谢你的帮助。其次,由于各种原因,我无法修改示例中two.test.com服务器的信息,所以你的方法1、2便无法使用了。关于你的方法3,根据我从网上看到的资料,在js的开头处加上document.domain=".test.com";就可以了吗,我在js中加入了document.domain=".test.com";,但是ajax却依旧无法访问http://two.test.com:8080/json/authenticate,无法进入ajax的success方法。[/quote] 这三种方法都必须改two服务, 方法1 改http头 方法2 改返回格式 方法3 在two服务器放一个html文件 如果你什么都动不了的话, 只能用方法4了 自己在one服务器上进行http请求, one服务器请求自己的服务器, 再由服务器进行请求
  • 打赏
  • 举报
回复
引用 5 楼 MOONCOM 的回复:
[quote=引用 1 楼 showbo 的回复:] 100%跨域了,域名都不一样,端口不一样都算跨域(IE端口不一样不算)。。two改下数据格式,为jsonp的(或者A站做代理),要不客户端ajax直接请求跨域地址兼容性好难搞
感谢你的帮助,我想用3楼的修改document.domain的方法,但是却没有成功,你有什么建议吗[/quote]document.domain对ajax无效
霜月枫桥 2016-10-09
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
100%跨域了,域名都不一样,端口不一样都算跨域(IE端口不一样不算)。。two改下数据格式,为jsonp的(或者A站做代理),要不客户端ajax直接请求跨域地址兼容性好难搞
感谢你的帮助,我想用3楼的修改document.domain的方法,但是却没有成功,你有什么建议吗
霜月枫桥 2016-10-09
  • 打赏
  • 举报
回复
引用 3 楼 WitsonX 的回复:
很明显跨域了,你有以下3种方案: 1. two服务器返回的http加上Access-Control-Allow-Origin (请自行百度),缺点:仅支持HTML5的浏览器适用 2. 采用JSONP请求 (自行百度),注: JSONP是以GET方式请求, 同时服务器返回的数据也应进行相应的改造 3. 采用嵌套iFrame并修改document.domain 实现跨域请求 (自行百度 "document.domain 跨域" )
首先,非常感谢你的帮助。其次,由于各种原因,我无法修改示例中two.test.com服务器的信息,所以你的方法1、2便无法使用了。关于你的方法3,根据我从网上看到的资料,在js的开头处加上document.domain=".test.com";就可以了吗,我在js中加入了document.domain=".test.com";,但是ajax却依旧无法访问http://two.test.com:8080/json/authenticate,无法进入ajax的success方法。
WitsonX 2016-10-08
  • 打赏
  • 举报
回复
很明显跨域了,你有以下3种方案: 1. two服务器返回的http加上Access-Control-Allow-Origin (请自行百度),缺点:仅支持HTML5的浏览器适用 2. 采用JSONP请求 (自行百度),注: JSONP是以GET方式请求, 同时服务器返回的数据也应进行相应的改造 3. 采用嵌套iFrame并修改document.domain 实现跨域请求 (自行百度 "document.domain 跨域" )
KK3K2005 2016-10-08
  • 打赏
  • 举报
回复
你去看下微服务 看一点点概念就可以了
  • 打赏
  • 举报
回复
100%跨域了,域名都不一样,端口不一样都算跨域(IE端口不一样不算)。。two改下数据格式,为jsonp的(或者A站做代理),要不客户端ajax直接请求跨域地址兼容性好难搞

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧