1

我正在尝试获取一个简单的 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)说“没有数据”,这意味着它失败了。

4

2 回答 2

1

您已经提到了dataType: 'jsonp'您正在发送字符串的响应

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

希望这可以帮助

于 2013-04-09T06:54:08.590 回答
1

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

PS - 如果您正在发出跨域请求,则使用 jsonp,但在 phonegap 中它不是必需的,因为您已经将域列入白名单。

于 2013-04-09T07:15:41.147 回答