2016-03-17 34 views
0

我正在制作一个应用程序与apache cordova ...我需要从wordpress网站的文章。启用CORS从Cordova应用程序调用JSON REST应用程序

请,你说之前,它是一个重复阅读以下要点:

  1. 所以,我安装了REST API V2:http://v2.wp-api.org/

  2. 启用这样的CORS: < ? header (" Access- Control-Allow -Origin : * ") ; ? >在头部。主题的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"); 
           } 
    
          }); 
    

结果总是一样的,萤火虫返回我CORS被锁定,所以我不能从外部需求...如何我修复?

回答

0

嗨没有必要将它添加到您的主题标题,只需添加下面的代码到的wp-content /插件/ 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); 
    } 
0

我已经解决了改变DataType: "json"DataType: "jsonp"

索尔ution:将DataType设置为jsonp。

相关问题