【问题标题】:Access-Control-Allow-Origin - Error when trying to access JSON from Wordpress installationAccess-Control-Allow-Origin - 尝试从 Wordpress 安装访问 JSON 时出错
【发布时间】:2015-11-05 12:27:12
【问题描述】:

我尝试使用 JavaScript (AngularJS) 中的“旧”Json-Api 访问我的博客

现在我收到以下错误:

XMLHttpRequest 无法加载 http://example.com/?json=get_category_index。不 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:63342” 访问。

看起来很简单。但即使我尝试了以下方法:

将这些行添加到 .htaccess 中:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

将以下行添加到主题的 header.php 和 json-api.php:

<? header("Access-Control-Allow-Origin: *"); ?>

我仍然收到此错误。

【问题讨论】:

    标签: javascript php wordpress cors


    【解决方案1】:

    您可以在 AngularJS 中使用JSONP

    JSONP 用于向不同域的服务器请求数据。

    记录在案的here

    【讨论】:

    • 即使主要问题不同(我自己的回答)我更喜欢这个,因为它提供了一个更干净的解决方案。
    【解决方案2】:

    好的。解决了。有点棘手:

    我不得不将 ">&lt;? xxx ?&gt;" 更改为 "&lt;?php xxx ?&gt;"

    &lt;?” - 部分未呈现为服务器代码,而是像普通 html 一样输出。

    【讨论】:

      【解决方案3】:

      您尝试访问的远程服务器 (JSON) 应该允许 Access-Control-Allow-Origin,而不是您的 Wordpress 主机。

      如果它们在同一个服务器中,那么可能是您忘记设置相对 URL,因此当您从 localhost 尝试时,您将无法访问您的网络主机。

      【讨论】:

      • 你误会了。我从我的博客 (example.com) 中读取数据
      猜你喜欢
      • 2017-06-15
      • 2019-02-09
      • 1970-01-01
      • 2011-05-19
      • 2019-07-25
      • 2014-04-16
      • 2017-12-30
      • 2019-02-07
      • 2021-09-02
      相关资源
      最近更新 更多