2011-09-29 684 views
0

我有一个与节点构建的聊天。此聊天在example.com的3000端口上运行。我通过使用jQuery的ajax调用来在同一个域的页面中使用此聊天。因此,我在example.com:3000上进行了聊天,并且在example.com:80上运行了包含此聊天的网站。因为不同的端口(即使在同一个域中)已经违反了同源策略,所以我在我的节点服务器头文件“Access-Control-Allow-Origin”中包含:“*”以允许跨聊天通话。iPhone,iPod和iPad上的移动Safari上的跨域问题

因为ajax加载的聊天正在寻找它在example.com:80上的js/css文件,所以我必须将example.com:3000上的js/css文件的路径设置为绝对路径。所以聊天是通过“http://example.com:3000/css/style.css”和“http://example.com:3000/js/client.js”寻找它的js/css文件。使用普通浏览器(Safari,Firefox,Chrome等)可以很好地工作,在它自己的example.com:3000上聊天,并且包含在example.com:80中。

但是,这是问题,它不适用于任何移动Safari(iPhone,iPod,Ipad)。聊天的主要页面将通过ajax调用加载,但后续的js/css文件未加载。我无法使用相对路径,因为client.js和style.css文件位于跨域的example.com:3000上。

我需要放置“访问控制 - 允许来源”设置吗?或者有什么我需要做的路径?或者是否有一些设置,我需要做的jQuery使这项工作?由于除了报告错误之外,移动版Safari上没有任何调试工具,所以我没有想法。我没有得到。

+1

是否有从移动Safari做出的服务器的实际请求,如果有,返回代码是什么? – monsur

+0

当嵌入到父页面时,发出请求并且节点服务器返回索引页面,该页面加载得很好,但没有从移动Safari浏览器为style.css或client.js进行后续调用。当我在加载嵌入式聊天时查看节点的控制台时,只会索引索引。当我在移动Safari浏览器中直接打开example.com:3000时,查看节点的控制台时,请求索引页,client.js和style.css。因此,当我尝试将example.com:3000嵌入父页面时,移动Safari不会发送任何文件example.com:3000需要的功能请求。 – vilo

回答

0

其实我应该使用iframe,如果我想嵌入式聊天能够拉它自己的内部文件。这就是我最终做的。

相关问题