关于js跨域问题,请大家帮忙分析一下

恺哥 发布于 2012/08/14 14:01
阅读 926
收藏 0

服务器部署情况是这样的:

一台server,内网ip为:10.0.0.1

                   外网ip为:221.208.0.1

现在集成的兄弟给我做了一个端口映射:外网ip为:221.208.0.1:7777 对应的是10.0.0.1:8888

以上是服务器的ip信息;我现在有这么一个应用,是利用jquery的ajax方式请求来加载数据;

比如说有一个index.html,将其部署在一个端口为8888的tomcat下:

外网访问地址为:http://221.208.0.1:7777/webapp/index.html,此时该index界面可以被访问,但:

index.html的onload方法中需要通过ajax方式初始化界面信息:

ajax的调用信息为:

onload(){

$.post("http://10.0.0.1:8888/webapp/service",function(){......});

}

,首先请教一下,此种方式的调用,是不是跨域的?

如果是这样,我这边应该如何调整一下,谢谢大家

加载中
0
恺哥
恺哥

加入我在本机测试,全是用localhost访问,系统没有任何问题;一旦我用127.0.0.1调用index.html,而index.html用localhost调用后端服务,就会不好使,这是不就是所谓的跨域?

我先普及一下jsonp 的知识

0
红薯
红薯

肯定跨域了,应该是 $.post("http://221.208.0.1:7777/webapp/service"

或者说这个地址是程序生成的?

0
六只
六只

跨域可以用jquery的jsonp

0
酒逍遥
酒逍遥
跨了..像红薯 那样调整就行
0
恺哥
恺哥

引用来自“红薯”的答案

肯定跨域了,应该是 $.post("http://221.208.0.1:7777/webapp/service"

或者说这个地址是程序生成的?

不是程序生成,是写在index.html页面中的

 

红薯
红薯
你的程序写死了 10.0.0.1 吗? 这个地址在外网的用户是无法访问的哦
0
恺哥
恺哥

引用来自“酒逍遥”的答案

跨了..像红薯 那样调整就行
哪样调整的?
恺哥
恺哥
回复 @红薯 : 关键是在那台server上,自己无法访问221.208.0.1;换句话说就是10不能用221的ip访问自己。我问问集成的兄弟,看看能不能做到。我也测试了,ip都一致的话,没问题
红薯
红薯
所有涉及到的链接地址都必须改为 221 这个
0
恺哥
恺哥

@红薯:同一台server,两个ip(1个内网10.0.0.1,一个外网221.208.0.1)

外网通过221.208.0.1:7777访问index.html

然后他会映射到10.0.0.1:8888上的index.html

在10.0.0.1:8888的index.html里边的$.post("http://10.0.0.1:8888/webapp/service")

目前是这个形式

0
恺哥
恺哥
看这意思,这种情况,jsonp也搞定不了?
0
zfc827
zfc827
像红薯改一下就行了,JS的跨域很好理解,就是在当前页面中的JS,不允许请求非同源的资源。非同源包括:不同协议,比如HTTP和HTTPS,不同IP、不同域名、不同端口、不同URL等等...
0
Arrowing
Arrowing
这肯定跨域了,百度一下ajax跨域 很多解决方案
返回顶部
顶部