启用CORS从Cordova App

时间:2016-03-17 09:46:59

标签: json wordpress cordova rest cors

我正在使用apache cordova制作应用程序......我需要从wordpress网站上发帖。

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

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

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

  3. 中也是如此
  4. 我尝试安装:https://wordpress.org/plugins/wp-cors/

  5. 为GET REST API调用此方法:

                  jQuery.ajax({
                     type: "GET",
                     url: "myURL",
                     contentType: "application/json; charset=utf-8",
                     dataType: "json",
                     success: function (data, status, jqXHR) {
                          alert("suucess");
                     }
    
                 });
    
  6. 结果总是一样的,firebug告诉我CORS被锁定了,所以我不能从外部提出要求......我该怎么解决?

2 个答案:

答案 0 :(得分:0)

您好,无需将其添加到主题标题中,只需将以下代码添加到 wp-content / plugins / json-api / json-api.php 文件中 json_api_init()功能

   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);
   }

答案 1 :(得分:0)

我已将DataType: "json"更改为DataType: "jsonp"

  

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