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

时间:2015-01-15 18:20:00

标签: php jquery cordova visual-studio-2012

我一直在尝试使用简单的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.

在这个问题上寻求帮助。

2 个答案:

答案 0 :(得分:4)

找到答案here。将跨域代理设置更改为“远程”“已禁用”。默认情况下,它设置为“Local”,不允许跨域资源访问。

enter image description here

答案 1 :(得分:1)

解决了这个问题。 使用RIPPLE模拟器时,SETTINGS-&gt; CROSS DOMAIN PROXY = REMOTE

其他跨域请求被阻止。