使用 Visual Studio 的 Cordova 中的 HTTP POST 失败

HTTP POST Failure in Cordova using Visual Studio

我一直在尝试获得一个简单的 HTTP POST 来将基于 cordova 的应用程序连接到服务器(基于php)。

我编写了一个简单的 php 文件,仅用于测试目的。

Php代码:

<?php
    if (isset($_POST["TEST"])){
        echo "TEST WORKS!!";
    }
?>

现在我的 cordova 应用程序中的 jquery 代码>

// 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 文件的 url。

编辑

经过一番研究,我发现问题出在跨域代理上。

现在最新的错误信息是:

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 模拟器时,SETTINGS->CROSS DOMAIN PROXY = REMOTE

否则跨域请求被拦截。

找到答案here。将 跨域代理 设置更改为 "Remote""Disabled"。默认设置为"Local",不允许跨域资源访问。