为什么在www.domain.com上,domain.com上的网站无法正常工作?

时间:2011-01-03 19:43:47

标签: jquery ajax dns lightbox

这是工作页面:游戏手套点com

非工作页面是相同的网址减去“www。”。

现在尝试点击YouTube视频左侧页面左上角图库中的项目。他们在一个版本中弹出一个灯箱窗口而不是另一个版本。

还可以尝试点击“点击此处订购”按钮。两个版本的网页都会显示一个弹出窗口,但是一旦您做出选择,然后单击该灯箱窗口上的按钮,您将在domain.com版本上看到错误,但不会在www.domain.com版本上看到错误。< / p>

我错过了一些荒谬的东西吗?

3 个答案:

答案 0 :(得分:3)

由于对象是flash,因此需要一个策略文件才能拥有执行javascript代码的权限。它可能是从www.don't加载,希望这个页面在domain.com网站下被编入索引,而不是domain.com,这会打破它的跨域政策,因为它们不被认为是同一个域。因此,您必须更改跨域策略文件以包含所有子域

示例应该是(如果我没记错的话):

<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*.domain.com" />
</cross-domain-policy>

答案 1 :(得分:0)

点击“点击订购”按钮后,您会返回302重定向状态,其中包含一个位置,因为same origin policy

您的ajax调用无法跟进

下面的截图

alt text

答案 2 :(得分:0)

问题是因为处理请求的domain.com后端脚本在没有www请求的情况下发送302暂时移动。

我不确定jQuery ajax实现是否尝试跟随302,但即使它确实如此,它也无法获取内容,因为它位于不同的域上,因此受{ {3}}

最简单的解决方案是更新后端处理脚本以删除302重定向。或者,强行将所有流量从same origin policy重定向到http://domain.com