在浏览器中工作的localhost上的WCF服务无法在PhoneGap中工作

时间:2012-01-20 23:01:14

标签: android eclipse wcf web-services cordova

这是我的网络服务,在Fiddler和我的浏览器中运行得非常好:     http://localhost:11458/PlayerSvc.svc/GetPLayers

然后我尝试通过phonegap中的Jquery调用它,但它失败了: 这是我在使用Eclipse的phonegap中的jquery:

<script type="text/javascript">
$.ajax({
        url: 'http://localhost:11458/PlayerSvc.svc/GetPlayers',
            dataType: 'json',
           // timeout: 55000,
           // beforeSend: function(xhr) {
                //Possible to set any required headers here
                //xhr.setRequestHeader('Authorization', 'username password');
           // },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert('failed');
            },
            success: function(data) {
                alert('success');
            }
        });
</script>

为了确保我的jquery没有任何问题,我使用此代码测试了另一个Web服务并且它成功了。我不知道如何收集有关如何调试此信息的更多信息。我尝试用console.log(上面的javascript)包装我的javascript,但我无法使用它。如上所示,我只使用alert函数输出失败的错误消息。有任何想法吗?我想我可以尝试使用try catch然后看看我是否可以输出异常...

2 个答案:

答案 0 :(得分:3)

您是否在Android模拟器中运行PhoneGap应用程序?如果是,我认为模拟器中的localhost(127.0.0.1)是指模拟器本身而不是主机。也许你需要尝试另一个IP地址(可能10.0.2.2工作)。

以下是解决此问题的问题/答案:

test the localhost in android emulator

答案 1 :(得分:0)

您需要允许白名单网址并将您的主机地址添加到phonegap.plist文件中的外部主机。

http://geekaboo.wordpress.com/2011/11/20/ios5-whitelist-url-unauthorized-using-phonegap/