Phonegap AJAX调用失败

时间:2013-04-09 06:14:44

标签: jquery ios ajax cordova

我正在尝试使用一个简单的phonegap应用与我的服务器进行通信。

这是我的javascript:

<script src="js/jquery.min.js" ></script>
    <script>
        $.ajax({
            url: 'http://www.drimmit.com/test',
            dataType: 'jsonp',
            jsonp: 'jsoncallback',
            timeout: 5000,
            success: function(data, status){
                //data loaded
                alert(data);
            },
            error: function(){
                //error loading data
                alert('no data');
            }
        });
    </script>

我还在config.xml中将域列入白名单:

<access origin="http://www.drimmit.com" subdomains="true"/>

在我的服务器上,我正在做一个简单的echo语句。

<?php
header('Content-type: application/json');
echo 'hello from server';

?>

最后,我得到一个弹出窗口(iOS)说“没有数据”,这意味着它失败了。

2 个答案:

答案 0 :(得分:1)

您已经提到dataType: 'jsonp'作为响应,您正在发送字符串

<?php
header('Content-type: application/json');
echo json_encode('hello from server');
?>

希望这有帮助

答案 1 :(得分:1)

你已经提到请求类型为jsonp,但是从服务器你渲染json,因此问题,如果你从你的ajax调用中删除“jsonp:'jsoncallback'”语句,它应该工作正常,也替换dataType: 'jsonp'与dataType:'json'。

如果您正在进行交叉请求,则使用PS-jsonp,但在phonegap中则不需要,因为您已将域名列入白名单。