我的ajax代码是
$.ajax({ type: 'GET',dataType: "jsonp",processData: false,crossDomain: true,jsonp: false,url: "http://someotherdomain.com/service.svc",success: function (responseData,textStatus,jqXHR) { console.log("in"); },error: function (responseData,errorThrown) { alert('POST Failed.'); } });
这是一个跨域ajax请求.
我得到正确的请求响应,而检查与firebug我可以看到那个回应.
这是响应我在firebug响应和访问此URL通过网络浏览器
{"AuthenticateUserResult":"{\"PKPersonId\":1234,\"Salutation\":null,\"FirstName\":\"Miqdad\",\"LastName\":\"Kumar\",\"Designation\":null,\"Profile\":\"\",\"PhotoPath\":\"\/UploadFiles\/\"}"}
但我错了
SyntaxError: invalid label {"AuthenticateUserResult":"{\"PKPersonId\":8970,\"Salutation\
我是否需要使用任何其他方法来获得它的作用.我想在phonegap jquery手机应用程序中实现这一点.
此外,我没有访问Web服务
如果我禁用chrome web安全性,它的工作正常
解决方法
看起来像内部的JSON结构作为一个字符串传递.您将不得不将JSON.parse()再次将该数据作为对象.
try { responseData = JSON.parse(responseData); } catch (e) {}
编辑:
尝试以下:
$.ajax({ type: 'GET',dataType: "json",jqXHR) { console.log("in"); var data = JSON.parse(responseData['AuthenticateUserResult']); console.log(data); },errorThrown) { alert('POST Failed.'); } });