同一域上的ajax跨域错误?
Posted
技术标签:
【中文标题】同一域上的ajax跨域错误?【英文标题】:ajax cross domain error on SAME domain? 【发布时间】:2012-01-08 12:54:07 【问题描述】:我的客户有一个 wordpress 博客,我们正在将 rss 提要发送到主页以显示过去 3 篇文章...我正在使用 jquery,一切都运行良好。
我们将 IP 更改为专用 IP,但它突然停止工作。我的 XHR 是 0!我假设它认为这是一个跨域问题。
对于临时修复,我编写了一个 php 代理来加载文件,我正在 ajaxing ——(有效 - 注意:文件在 wp 目录中,所以它不是目录范围的问题)
谢谢!
//编辑(代码)
$.ajax(
url: '/blog/?feed=rss2',
success: function()
alert('worked');
,
error: function(x)
alert(x.status);
);
$.ajax(
url: '/blog/proxy.php',
success: function()
alert('worked');
,
error: function(x)
alert(x.status);
);
注意:proxy.php 只打开“/blog/?feed=rss2”
我在 proxy.php 上成功,但得到 jqXHR.status = 0
【问题讨论】:
是什么让你相信这不是跨域问题? 通常当您获得 xhr 时,这是因为您尝试跨域访问或文件不可用。好吧,该文件是 def 可用的 - 但我仍然得到状态 = 0。权限在某处搞砸了,我想我现在无法访问 ajax 你能提供一些代码吗? 您是否尝试过在浏览器中访问/blog/proxy.php?那你有回应吗?如果您收到回复,您可能对跨域问题是正确的,但我认为这也可能是 fopen 通过网络连接的问题。 是的,我可以加载 proxy.php 没问题 - 它使 xml 完美呈现......而且在 ajax 代理时它也可以工作。只是在尝试直接 ajax 文件时不起作用。注意:在我们切换 IP 地址之前它一直有效 【参考方案1】:尝试检查其中的一些以了解更多详细信息。绝对使用 Firebug 或 Chrome 的 XHR 调试器 (F12)
为了向后兼容 XMLHttpRequest,jqXHR 对象将 公开以下属性和方法:
就绪状态 状态 状态文本 responseXML 和/或 responseText 当 底层请求分别以 xml 和/或文本响应 setRequestHeader(名称,值) getAllResponseHeaders() getResponseHeader() 中止()
【讨论】:
以上是关于同一域上的ajax跨域错误?的主要内容,如果未能解决你的问题,请参考以下文章