我正在开发基于PhoneGap的移动应用程序。我需要使用AJAX,我正在使用jQuery。
我正在尝试使用CORS从PHP上的WS获取JSON,但是我收到错误,并且错误消息为空。我在Web浏览器中测试了代码并且它可以工作。但是,当我在PhoneGap中使用它时,它没有用。我使用Fecebook WS在PhoneGAp中测试了我的代码并且它可以工作。这是我测试的组合:
测试1
来源:file:/// C:/.../index.html(网络浏览器)
WebService:http://localhost/.../getemployees.php
结果:它有效
测试2
来源:PhoneGap
WebService:http://localhost/.../getemployees.php
结果:它不起作用
测试3
来源:PhoneGap
WebService:https://graph.facebook.com/OldemarshCr
结果:它有效
这是代码:
$.getJSON(url, function (data) {console.log(data);})
.success(function() { console.log("second success"); })
.error(function(jqXHR, textStatus, errorThrown) {
console.log('******* '+"error: " + textStatus+' *******');
});
这是JSON响应:
{"items":[{"id":"10","firstName":"Kathleen","lastName":"Byrne","title":"Sales Representative","picture":"kathleen_byrne.jpg","reportCount":"0"},{"id":"9","firstName":"Gary","lastName":"Donovan","title":"Marketing","picture":"gary_donovan.jpg","reportCount":"0"},{"id":"7","firstName":"Paula","lastName":"Gates","title":"Software Architect","picture":"paula_gates.jpg","reportCount":"0"]}
谢谢,
答案 0 :(得分:0)
在ajax调用中,尝试添加
$.ajax({
crossDomain: true,
xhrFields: {withCredentials: true}
});
答案 1 :(得分:0)
$ .ajax不起作用......这是我得到的错误
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
我在网络浏览器上测试了代码并且运行良好。
这是代码:
$.ajax({
crossDomain: true,
xhrFields: {withCredentials: true},
type: 'GET',
url: url,
dataType: 'json',
success: function(response){ console.log(response); }
error: function(error){ console.log('Error: '+error); }
});
谢谢,
答案 2 :(得分:0)
好消息!!
我解决了这个问题。两种方法getJSON和ajax都在工作,问题是服务器。
当我从外部服务器(而不是localhost)访问Web服务时,它工作正常。
谢谢,