簡體   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