Access-Control-Allow-Origin - 尝试从 Wordpress 安装访问 JSON 时出错
Posted
技术标签:
【中文标题】Access-Control-Allow-Origin - 尝试从 Wordpress 安装访问 JSON 时出错【英文标题】:Access-Control-Allow-Origin - Error when trying to access JSON from Wordpress installation 【发布时间】: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: *"); ?>
我仍然收到此错误。
【问题讨论】:
【参考方案1】:您可以在 AngularJS 中使用JSONP
。
JSONP
用于向不同域的服务器请求数据。
记录在案的here。
【讨论】:
即使主要问题不同(我自己的回答)我更喜欢这个,因为它提供了一个更干净的解决方案。【参考方案2】:好的。解决了。有点棘手:
我不得不将 "><? xxx ?>
" 更改为 "<?php xxx ?>
"
“<?
” - 部分未呈现为服务器代码,而是像普通 html 一样输出。
【讨论】:
【参考方案3】:您尝试访问的远程服务器 (JSON) 应该允许 Access-Control-Allow-Origin,而不是您的 Wordpress 主机。
如果它们在同一个服务器中,那么可能是您忘记设置相对 URL,因此当您从 localhost 尝试时,您将无法访问您的网络主机。
【讨论】:
你误会了。我从我的博客 (example.com) 中读取数据以上是关于Access-Control-Allow-Origin - 尝试从 Wordpress 安装访问 JSON 时出错的主要内容,如果未能解决你的问题,请参考以下文章