我正在尝试使用一个简单的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)说“没有数据”,这意味着它失败了。
答案 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中则不需要,因为您已将域名列入白名单。