【问题标题】:phonegap using webservice with ajaxphonegap 使用带有 ajax 的 web 服务
【发布时间】:2012-08-03 04:29:48
【问题描述】:

我正在使用 ajax 来使用我的网络服务。这是我的 code.js:

//button
$('#my_btn').live('click touchstart', function() {
   GetData();
});

function GetData() {    
    $.ajax({
        type: "POST",
        url: "http://www.safetrace.com.br/safefrigorifico/services/ServicoConsulta.jws?op=consultarDados",
        //url: "http://www.safetrace.com.br/safefrigorifico/services/ServicoConsulta.jws/consultarDados",
        //data: {},
        //contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend : function(jqXHR, settings) {
        alert("1)\njqXHR= " + jqXHR + "\njqXHR.status= " + jqXHR.status + "\njqXHR.readyState= " + jqXHR.readyState + "\nsettings= " + settings);
        },
        success: function(msg) {
           alert("2)\n" + msg);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("3)\njqXHR= " + jqXHR + "\ntextStatus= " + textStatus + "\nerrorThrown= " + errorThrown + "\njqXHR.status= " + jqXHR.status + "\njqXHR.readyState= " + jqXHR.readyState);
        },
        complete : function(jqXHR, textStatus) {
            alert("4)\njqXHR= " + jqXHR + "\ntextStatus= " + textStatus + "\njqXHR.status= " + jqXHR.status + "\njqXHR.readyState= " + jqXHR.readyState);
        }

    });

}

还有我的 index.html:

<html>
  <head>
    <meta charset="utf-8" />

    <link rel="stylesheet" type="text/css" href="css/style.css" />        

    <script type="text/javascript" src="plugin/jquery-1.7.2.js" ></script>        
    <script type="text/javascript" charset="utf-8" src="plugin/cordova-1.8.0.js"></script>

  </head>

  <body>

    <div id="my_btn"></div>  

  </body>
</html>

当我运行时,我得到的只是“错误!”

任何人都知道如何使用 ajax 来使用 phonegap 使用 web 服务?

我知道这是可能的,但我不知道该怎么做! =/

phonegap 常见问题解答:

问。我想为phonegap创建一个外部访问的应用程序 通过 AJAX 部署 Web 服务。我该如何解决这个问题 XmlHttpRequest的跨域安全策略?

A.跨域安全策略不影响PhoneGap 应用程序。由于 html 文件由 webkit 调用 file:// 协议,安全策略不适用。 (在 Android 中,你 可以通过编辑向您的应用授予 android.permission.INTERNET AndroidManifest.xml)

错误打印:https://lh3.googleusercontent.com/CJZg3rn3FDKEWHDfrwzRaMbwwQCTg7vYm_5mSba6r006L6eTcbhvRKZyPWNbRsrMaRtDGv-IESw

【问题讨论】:

    标签: ajax web-services cordova


    【解决方案1】:

    首先,您的网址似乎有误。将其粘贴到浏览器中得到我:

    404 在此服务器上未找到请求的 URL /safefrigorifico/services/ServicoConsulta.jws/consultarDados。

    修复该问题后,您可以尝试使用GET,因为您不会发布任何数据并删除contentType。此外,jQuery 有.getJSON(),这进一步简化了这一点。

    删除:

    data: {},
    contentType: "application/json; charset=utf-8",
    

    变化:

    type: "GET",
    

    或者试试:

    var jqxhr = $.getJSON( 'http://www.safetrace.com.br/safefrigorifico/services/ServicoConsulta.jws/consultarDados', 
        function() { alert( 'success' ); } )
        .error( function() { alert( 'error' ); } );
    

    【讨论】:

    • 我仍然得到“错误”! =/我在错误函数中添加了这个:“错误:函数(jqXHR,textStatus,errorThrown)”和jqXHR = [object Object],textStatus = error,errorThrown = Not Found!
    • @xazinn 看来您的网址有误。将其粘贴到浏览器中,它也会得到not found
    • 我的错!但我有这个网络服务:link 并且我需要访问操作 consultarDados ,如果我输入 url:safetrace.com.br/safefrigorifico/services/… 仍然会出错! :(
    • @xazinn 您的 Web 服务返回 XML,而不是 JSON。
    • 真的!?哈哈 !但即使是 Json 或 XML 我仍然不知道如何从这个 WS 获取信息!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2011-08-07
    相关资源
    最近更新 更多