我一直在尝试使用简单的HTTP POST来将基于cordova的应用程序连接到服务器(基于php)。
我编写了一个简单的php文件,仅用于测试目的。
Php代码:
<?php
if (isset($_POST["TEST"])){
echo "TEST WORKS!!";
}
?>
现在我的cordova应用程序中的jquery代码&gt;
// 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
是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.
在这个问题上寻求帮助。
答案 0 :(得分:4)
找到答案here。将跨域代理设置更改为“远程”或“已禁用”。默认情况下,它设置为“Local”,不允许跨域资源访问。
答案 1 :(得分:1)
解决了这个问题。 使用RIPPLE模拟器时,SETTINGS-&gt; CROSS DOMAIN PROXY = REMOTE
其他跨域请求被阻止。