【问题标题】:AJAX, Subdomains and the 200 OK responseAJAX、子域和 200 OK 响应
【发布时间】:2010-05-15 11:50:50
【问题描述】:

一个非假设但抽象的情况:

我有一个域 www.foo.com,我正在从该域向 beta.foo.com 进行 AJAX POST。检查 XHR 对象,我看到 200 OK 的响应标头,但没有响应文本 - 我什至得到一个 12B 长的响应,这是我期望的确切响应(一个 12 个字符的字符串) - 但响应文本是空白。

如果这是一个跨域问题,为什么我得到 200 OK,而且更好 - 为什么我看到 PHP 函数在 beta.foo.com 端触发 - 但没有得到响应?

【问题讨论】:

  • 不是跨域问题。 AJAX 没有任何类型的安全模型。
  • 您是否使用 firebug 来查看响应文本?
  • 发布您的 JavaScript 代码。在没有看到代码的情况下,这里没有足够的信息来完全调试问题。

标签: php ajax subdomain cross-domain


【解决方案1】:

您不能这么简单地进行跨子域的 ajax 调用。有一个叫做Same origin policy 的东西会阻止你这样做。如果您想对该问题进行排序,您需要使用JSONPIframes

安装 firebug,你会看到一个 http 200 代码和一个错误:那个错误是 SOP 作用的。

【讨论】:

  • JSONP 在这种情况下是票证。
【解决方案2】:

您提到您正在检查 responseText 属性。您的回复可能是 XML 格式吗?

如果您发送 XML 请求,或者响应类型为 'text/xml',您将获得 responseXML 的值。我相信responseText 属性如果是 XML 格式可以为空。

来自谷歌的随机示例:

http://javascript.about.com/library/blajax08.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多