Я пытался заставить простой HTTP POST работать для подключения приложения на базе Cordova к серверу (на основе php).
Я написал простой файл php только для целей тестирования.
Код php:
<?php
if (isset($_POST["TEST"])){
echo "TEST WORKS!!";
}
?>
Теперь код JQuery в моем приложении Cordova>
// For an introduction to the Blank template, see the following documentation:
// http://go.microsoft.com/fwlink/?LinkID=397704
// To debug code on page load in Ripple or on Android devices/emulators: launch your app, set breakpoints,
// and then run "window.location.reload()" in the JavaScript Console.
(function () {
"use strict";
document.addEventListener('deviceready', onDeviceReady.bind(this), false);
function onDeviceReady() {
// Handle the Cordova pause and resume events
document.addEventListener('pause', onPause.bind(this), false);
document.addEventListener('resume', onResume.bind(this), false);
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
//My Code
$('#btnSend').on('click', function () {
$.post('http://mobtest.bugs3.com/test.php',
{ TEST: 'TEST' },
function (result) {
alert(result);
$('#txtlbl').text(result);
},
function (error) {
alert(error);
$('#txtlbl').text(error);
}
);
});
};
function onPause() {
// TODO: This application has been suspended. Save application state here.
};
function onResume() {
// TODO: This application has been reactivated. Restore application state here.
};
})();
Это основано на шаблоне, предоставленном Visual Studio для сборки Apache / Cordova.
Когда я нажимаю кнопку, я вижу следующее сообщение в моей консоли:
http://localhost:4400/ripple/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=http%3A//mobtest.bugs3.com/test.php Failed to load resource: net::ERR_CONNECTION_REFUSED
Где http://mobtest.bugs3.com/test.php
URL-адрес файла php.
РЕДАКТИРОВАТЬ
После небольшого исследования я выяснил, что именно CROSS DOMAIN PROXY является причиной проблемы.
Теперь последнее сообщение об ошибке:
XMLHttpRequest cannot load http://mobtest.bugs3.com/test.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4414' is therefore not allowed access.
Нужна помощь по этому вопросу.
Нашел ответ Вот. Изменить Междоменный прокси установка на «Дистанционный пульт» или же «Инвалид». По умолчанию установлено значение «Локальный», что не разрешает междоменный доступ к ресурсам.
Решил проблему.
При использовании RIPPLE Emulator, SETTINGS-> CROSS DOMAIN PROXY = REMOTE
В противном случае междоменные запросы блокируются.