14
回答
关于js跨域问题,请大家帮忙分析一下
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

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

一台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(){......});

}

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

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

<无标签>
举报
恺哥
发帖于5年前 14回/818阅
共有14个答案 最后回答: 5年前

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

我先普及一下jsonp 的知识

引用来自“红薯”的答案

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

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

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

 

--- 共有 1 条评论 ---
红薯你的程序写死了 10.0.0.1 吗? 这个地址在外网的用户是无法访问的哦 5年前 回复

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

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

@红薯:同一台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")

目前是这个形式

像红薯改一下就行了,JS的跨域很好理解,就是在当前页面中的JS,不允许请求非同源的资源。非同源包括:不同协议,比如HTTP和HTTPS,不同IP、不同域名、不同端口、不同URL等等...
顶部