PhoneGap ios构建Ajax不起作用

Posted

技术标签:

【中文标题】PhoneGap ios构建Ajax不起作用【英文标题】:PhoneGap ios build Ajax not working 【发布时间】:2018-03-10 09:32:05 【问题描述】:

用于登录应用的 Ajax 调用在 ios phonegap 构建中不起作用,但在 android 中运行良好。

之前它在 Android 和 ios 上都运行良好,但在创建新版本后它停止在 ios 上运行。 然后我安装了旧版本,它也无法在 ios 上运行。

配置.xml

<?xml version='1.0' encoding='utf-8'?>

<name>PFC</name>
<description>
    A blank PhoneGap app.
</description>
<author email="support@phonegap.com" href="http://phonegap.com">
    PhoneGap Team
</author>
<gap:plugin name="cordova-plugin-x-socialsharing" source="npm" />
<plugin name="cordova-plugin-whitelist" source="npm" spec="~1.2.1" />
<gap:plugin  name="cordova-plugin-ionic-webview"  source="npm" />
<gap:plugin  name="cordova-plugin-ionic-keyboard"  source="npm" />
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />

<platform name="ios">
    <preference name="target-device" value="universal" />
    <preference name="prerendered-icon" value="true" />
    <preference name="detect-data-types" value="true" />
    <preference name="exit-on-suspend" value="true" />
    <preference name="deployment-target" value="7.0" />
    <preference name="fullscreen" value="true" />
    <preference name="orientation" value="portrait" />
</platform>
<platform name="android">
    <preference name="fullscreen" value="true" />
    <preference name="orientation" value="portrait" />
</platform>

Ajax 调用

$("#login").click(function()
    var email=$("#email").val();
    var password=$("#password").val();
    var dataString="email="+email+"&password="+password+"&login=";
    if($.trim(email).length>0 & $.trim(password).length>0)
    
        $.ajax(
                    type: "POST",
                    url: "http://profitnesscoach.in/admin/login.php",
                    data: dataString,
                    crossDomain: true,
                    cache: false,
                    beforeSend: function() $("#login").html('Connecting...');,
                    success: function(data)
                        var JSONObject = JSON.parse(data);
                        console.log(JSONObject);      // Dump all data of the Object in the console
                        if(JSONObject["status"]=="success")
                        
                            localStorage.login="true";
                            localStorage.email=email;
                            localStorage.id=JSONObject["id"];
                            window.location.href = "home.html";
                        
                        else if(JSONObject["status"]=="failed")
                        
                            $("#error").html('<div class="alert alert-danger"><strong>Ooops!</strong> Something went wrong.</div>')
                            $("#login").html('Login');
                        
                        else if(JSONObject["status"]=="wrong")
                        
                            $("#error").html('<div class="alert alert-danger"><strong>Ooops!</strong> Invalid Email or Password.</div>')
                            $("#login").html('Login');
                        
                    
                );
            return false;
    );

此代码在 android 上运行良好。 但是ios不能做ajax调用

【问题讨论】:

【参考方案1】:

问题出在我的 phonegap 键上。

我使用相同的苹果 P12 证书和个人资料创建了应用程序 IPA 表单 2 个不同的 phonegap 帐户。

可能是外壳冲突。

在创建新密钥后解决了新名称问题,现在我的应用运行良好

【讨论】:

以上是关于PhoneGap ios构建Ajax不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用Phonegap的IOS上的Jquery ajax请求-Ajax不起作用

使用 Phonegap 构建时,cordova-plugin-whitelist 不起作用

phonegap 构建白名单不起作用

使用 phonegap 构建服务的插件 plugin.google.maps 在 ios 上不起作用

Ext Js,Ext.Ajax.request 在移动设备上不起作用

构建后phonegap推送插件不起作用