启用 CORS 从 Cordova 应用程序调用 JSON REST
Posted
技术标签:
【中文标题】启用 CORS 从 Cordova 应用程序调用 JSON REST【英文标题】:enable CORS to call JSON REST from Cordova App 【发布时间】:2016-07-03 13:59:23 【问题描述】:我正在用 apache cordova 制作一个应用程序......我需要从 wordpress 网站上发帖。
在你说它是重复的之前,请阅读以下几点:
所以,我安装了 Rest Api v2:http://v2.wp-api.org/
像这样启用 cors:
< ? header ( " Access- Control-Allow -Origin : * " ) ; ? >
在主题的header.php中,甚至在wp-content/plugins/json-api/singletons/api.php
我已经尝试安装这个:https://wordpress.org/plugins/wp-cors/
为 GET REST API 调用此方法:
jQuery.ajax(
type: "GET",
url: "myURL",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, status, jqXHR)
alert("suucess");
);
结果总是一样的,firebug返回我说CORS被锁定了,所以我不能从外部提出要求......我该如何解决??
【问题讨论】:
【参考方案1】:您好,不需要将它添加到您的主题标题中,只需将以下代码添加到 json_api_init 内的 wp-content/plugins/json-api/json-api.php 文件中() 函数
if (isset($_SERVER['HTTP_ORIGIN'])) header("Access-Control-Allow-Origin: *"); header('Access-Control-Allow-Credentials: true'); header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); // Accept Cross Domain Transfer. if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers:$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']"); exit(0);
【讨论】:
【参考方案2】:我已经解决了将DataType: "json"
更改为DataType: "jsonp"
解决方法:将DataType设置为jsonp。
【讨论】:
以上是关于启用 CORS 从 Cordova 应用程序调用 JSON REST的主要内容,如果未能解决你的问题,请参考以下文章
无法在 ASP.Net Core Web api 中启用 CORS