[英]enable CORS to call JSON REST from Cordova App
我正在用Apache Cordova開發一個應用程序... ...我需要從一個WordPress網站上發帖。
請在您說重復之前,請閱讀以下幾點:
因此,我安裝了Rest Api v2: http : //v2.wp-api.org/
啟用了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
我嘗試安裝此程序: 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已鎖定的信息,所以我無法從外部發出請求...我該如何解決?
嗨,您無需將其添加到主題標題中,只需將以下代碼添加到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.