嗨我正在开发一个cordova 2.7.0 phonegap应用程序。我正在向web控制器发送餐馆ID以获取该restaurant.backend的详细信息在zend框架中但响应是调用错误函数,错误显示-json解析错误和意外的令牌< 我非常困惑。请帮助我。
我已经尝试过的事情: 如果我更改了网址,它会更改错误名称,因此错误可以在网址中,我不确定这是否是跨域问题。
这是我的代码
function somefunction()
{
alert("called");
var resid = sessionStorage.getItem("ids");
alert(resid);
$.ajax({
url : 'http://app.mywebsitename.com/takeaway/detail',
cache : false,
type : 'GET',
dataType : 'json',
crossDomain : true,
success : function getRestaurantSuccess(data, status) {
alert("success"); },
error : function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
}
});
}
答案 0 :(得分:0)
你必须在这里改变两件事:
您必须将dataType:'json',
更改为dataType:'jsonp'
并更改您的成功功能
success : function getRestaurantSuccess(data, status) {
到这个
success : function (data, status) {
因为您的网址似乎是跨域请求,并确保响应类型为json
,而且必须来自您的服务器端。
在您的帖子中找到我将餐馆ID发布到网络控制器
我没有发现你在你的ajax函数中发送它。所以你的最终代码应该是:
function somefunction() {
alert("called");
var resid = sessionStorage.getItem("ids");
alert(resid);
$.ajax({
url: 'http://app.mywebsitename.com/takeaway/detail',
cache: false,
data: {resid : resid}, // pass the res id here
type: 'GET',
dataType: 'jsonp', // change to jsonp for cross domain
crossDomain: true,
success: function (data, status) { // update your success function
alert("success");
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
}
});
}
答案 1 :(得分:0)
错误:“显示-json解析错误和意外令牌<”这意味着:服务器的数据格式响应不正确。在客户端,你设置dataType是'json'但是数据响应不是json数据或者可能是xml(我不确定,你应该再次检查),ajax解析数据并找到'<'从服务器进入数据响应。