繁体   English   中英

使CORS可以从Cordova App调用JSON REST

[英]enable CORS to call JSON REST from Cordova App

我正在用Apache Cordova开发一个应用程序... ...我需要从一个WordPress网站上发帖。

请在您说重复之前,请阅读以下几点:

  1. 因此,我安装了Rest Api v2: http : //v2.wp-api.org/

  2. 启用了cors,如下所示: < ? header ( " Access- Control-Allow -Origin : * " ) ; ? > < ? header ( " Access- Control-Allow -Origin : * " ) ; ? > < ? header ( " Access- Control-Allow -Origin : * " ) ; ? >在主题的header.php中,甚至在wp-content/plugins/json-api/singletons/api.php

  3. 我尝试安装此程序: https : //wordpress.org/plugins/wp-cors/

  4. 为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已锁定的信息,所以我无法从外部发出请求...我该如何解决?

嗨,您无需将其添加到主题标题中,只需将以下代码添加到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); } 

我已经解决了将DataType: "json"更改为DataType: "jsonp"

解决方案:将DataType设置为jsonp。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM