技巧: 解决AJAX抛出跨域错误或响应为空

发布者:culex于 2012/3/9 18:23:20 10957次阅读
在将XOOPS_URL分配给JavaScript变量时,无论是在预加载还是特定页面中。

浏览器通常会拒绝您的请求,并仅返回一个空的响应,但不会显示错误。这可以在FireBug的控制台看到,当请求返回代码"200 OK",但文本为红色时=空结果。非常麻烦

问题是Xoops Cookie与浏览器之间。我在登录到XOOPS页面并关闭页面(不注销)时发现了这个问题。当我重新打开预先加载的Ajax(在这种情况下是XIM和Smallworld)时,它们拒绝发送消息或发布到墙。

如果您从http://domain.com注销并打开http://www.domain.com,也会出现此问题。

据我所知,有2种解决方案。

1) 每次您完成浏览后都注销。

另一种解决方案是按照实际的浏览器地址定义AJAX请求中使用的JavaScript变量。

向您的页面添加一个函数(如果您将其添加到include/functions.php中,请记住在预加载或您正在工作的页面上包含此页面)

/**


在你的页面中,请按以下方式重置变量
// 检查请求的url是否包含www或不包含


变量smallworld_url现在将根据你的浏览器地址,这种方式不会导致ajax跨浏览器错误。