phonegap Android跨域不工作

Posted

技术标签:

【中文标题】phonegap Android跨域不工作【英文标题】:phonegap Android crossdomain not working 【发布时间】:2012-06-22 07:07:29 【问题描述】:
$('#loginForm').submit(function() 

        $("#loginsubmit",this).attr("disabled","disabled");
        var u = $("#loginemail", this).val();
        var p = $("#loginpassword", this).val();

        var postTo = 'http://www.example.com/login.php';

        if(u != '' && p!= '') 

        //navigator.notification.alert("not empty"+u, function() );

                var apiurl = "http://www.mapyi.com/api/mapyi/client.php?"+"action=verlogin&pass="+p+"&email="+u;
                $.ajax(
                url: apiurl,
                dataType: 'jsonp',
                jsonp: 'jsoncallback',
                timeout: 5000,
                success: function(data)
                    navigator.notification.alert("not empty"+data);
                ,
                error: function(msg)
                    navigator.notification.alert("ERROR"+msg);
                
            );

         /* end if u and p */

         //hide();
         //$('#homepage').show();
         return false;
     );

我在 phonegap.xml 中添加了访问权限,还为 android 添加了更新 manifest.xml。 php 响应在 json 中:

               /* PHP CODE SErver side */


/* output in necessary format JSON */

header('Content-type: application/json');
echo json_encode(array('posts'=>$ret));

我不知道我错过了什么,它总是显示带有输出 ERROR [object] [object] 的 ERROR 对话框

**已解决 我自己解决了,我没有在 php 服务中添加标题信息。 header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); header('Cache-Control: no-cache, must-revalidate'); 感谢 CODER DECODER ENCODER 抽出宝贵时间**

【问题讨论】:

【参考方案1】:

您的请求代码看起来很完美。我认为您错过了服务器端的 json 回调。像这样返回服务器数据,

echo $_GET['jsoncallback'] .json_encode(array('posts'=>$ret));

【讨论】:

已解决我没有在 php 响应标头中发送标头信息('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); header('Cache-Control: no-cache, must-revalidate'); 感谢 Coder Decoder Encoder,这也是问题所在,并通过使用 GET 添加 jsoncallback 来解决。

以上是关于phonegap Android跨域不工作的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap 跨域问题?

springboot跨域不拦截json拦截文件

Android PhoneGap Plugin, UI tabbar, resize WebView

vue生产环境跨域不生效

Phonegap LocalStorage - 是不是需要文件系统权限

phpstudy nginx设置CORS跨域不起作用的可能解决方法