PhoneGap应用程序 - JSONP请求发生在浏览器中,但不在设备上(Android)

时间:2013-02-02 18:00:23

标签: android cordova jsonp

我正在尝试在PhoneGap应用程序中进行JSONP调用。它在我的桌面浏览器中工作正常,但不在设备中。我认为它可能是jQuery Mobile的一个问题,所以我甚至尝试禁用它,但没有帮助。

Android版:3.0

这是我的代码:

<link rel="stylesheet"  href="css/themes/default/jquery.mobile-1.1.0.css" />
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.1.0.js"></script>
<script src="cordova-2.1.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
    function cancelclicked() {
        window.location.href="index.html";
    }

     function jsonp_call()
        {
            // The call request here
        }
        function parseRequest(response)
        {
            // Parse the response here
        }
</script>

<div data-role="page" class="type-interior">

<div data-role="header" data-theme="b">
    <h1>Login</h1>
</div>
<div data-role="content">
    <div class="content-primary">
            <div data-role="fieldcontain">
             <label for="name">Username:</label>
             <input type="text" id="uname" />
            </div>

            <div data-role="fieldcontain">
             <label for="name">Password:</label>
             <input type="password" name="name" id="pass"  />
            </div>
            <div data-role="fieldcontain">
                <label for="name" id="invalidlogin"></label>
            </div>
            <div class="ui-body ui-body-b">
            <fieldset class="ui-grid-a">
                    <button type="submit" onclick="return jsonp_call()" data-theme="e" rel="external">Login</button>
                    <!--</form>-->
                    <button type="submit" onclick="cancelclicked()" data-theme="d">Cancel</button>
            </fieldset>
            </div>
    </div>
</div>

我在这里缺少什么?它在浏览器上工作正常,所以我很确定JSONP代码是正确的。它在模拟器和设备上都失败了。

2 个答案:

答案 0 :(得分:2)

您是否将域名添加到Cordova配置文件中?它位于res / xml / config.xml

<access origin="bla.bla.domain.com" />

答案 1 :(得分:1)

对我来说,已经设置了访问源设置。 但我仍然遇到了问题。

事实证明是关闭HTML标签的几个缺失。 (在我的案例中关闭A HREF标签) 当我只更改它时,它在Android上再次运行。 Chome自动修复了丢失的结束标签。

非常头疼,因为在我的webbrowser测试过程中我没有遇到任何问题,我认为这与jsonp实现或安全/签名问题有关。