gpt4 book ai didi

wordpress - 在Phonegap应用中获取Wordpress帖子时出现Access-Control-Allow-Origin错误

转载 作者:行者123 更新时间:2023-12-04 13:19:43 26 4
gpt4 key购买 nike

希望有人可以在我通过phonegap开发移动应用程序时解决以下问题。我正在尝试从wordpress安装中读取帖子,但是在chrome上运行index.html页面时出现此错误

XMLHttpRequest无法加载Access-Control-Allow-Origin不允许使用Origin null。

我在WordPress中安装了JSON-API插件,当我导航到该页面时,我可以正常查看。我的代码如下:

<!DOCTYPE HTML>
<html>
<header>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
function readSinglePost (url,target_div) {
var URL = url//+"&callback=?";
console.log(URL);
jQuery.ajax({
url: URL,
dataType: 'json',
success: function(data) {
console.log(data);
jQuery(target_div).append("<h1>"+data.post.title+"</h1>");
jQuery(target_div).append(data.post.content);jQuery(target_div).
append("<small>"+data.post.date+"</small>");
console.log(data.post.content);
}
});
}
jQuery(document).ready(function() {
var url = "http://www.example.com/api/get_post/?json=get_post&dev=1&id=5486";
var target_div = "#contents";

readSinglePost(url, target_div);
});
</script>
</header>
<body>
<div id="main">
<div id="title"></div>
</div>
</body>
</html>

更新
回应下面的杰米

原始请求
GET /api/get_post/?json=get_post&dev=1&id=5486 HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Origin: null
Connection: keep-alive

原始响应
HTTP/1.1 200 OK
Date: Fri, 05 Jul 2013 16:51:49 GMT
Server: Apache/2.2.11 (Unix)
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Pingback: http://www.example.com/xmlrpc.php
Set-Cookie: PHPSESSID=f6308c2732752bbb1149b345018bdf68; path=/
Set-Cookie: wc_session_cookie_a111a960a9b29354988b3de48943ad50=IRhSF41ZHIBHMA3mmCCSSjdOSxqXf2wj%7C%7C1373215910%7C%7C1373212310%7C%7Cd472ed970a72ba78e8b2c836a1d8b2cc; expires=Sun, 07-Jul-2013 16:51:50 GMT; path=/; httponly
Set-Cookie: woocommerce_items_in_cart=0; expires=Fri, 05-Jul-2013 15:51:50 GMT; path=/
Set-Cookie: woocommerce_cart_hash=0; expires=Fri, 05-Jul-2013 15:51:50 GMT; path=/
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset: UTF-8
Content-Length: 57602

最佳答案

因此,您遇到的问题通常称为“跨源安全性”。基本上,大多数网络浏览器都不允许您从自己外部的服务器中提取内容,除非服务器表示可以。为此,服务器需要在 header 中看到可接受的Access-Control-Allow-Origin

好消息是,这很容易解决,正如Bowdenweb在How to Enable cors in WordPress中指出的那样。

您只需要向headers.php文件中添加适当的 header ,如下所示

<?php /** @package WordPress @subpackage Default_Theme  **/
header("Access-Control-Allow-Origin: *");
?>
<!DOCTYPE html>

更新1

正如ILI所指出的,Wordpress有一个名为 WordPress-Cross-Domain-Plugin的插件可以为他解决此问题。

关于wordpress - 在Phonegap应用中获取Wordpress帖子时出现Access-Control-Allow-Origin错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17491185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com