2011-12-13 53 views
0

我试图做一个跨域脚本调用来从远程服务器获取一些JSON数据,我可以看到请求正在进行,并使用提琴手成功返回数据,但调用失败,因为它无法解析JSON - JSON是有效的...跨域AJAX调用jQuery的失败解析

下面的jquery ajax调用有什么问题吗?

jQuery的版本1.7.1 =

$.ajax({ 
     url: 'http://fooed.cloudapp.net/users?callback=?', 
      crossDomain: true, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(data) { 
       alert('success'); 
      }, 
      error: function(data) { 
       alert('error'); 
      }, 
      complete: function(xhr, data) { 
       if (xhr.status == 0) 
        alert('fail'); 
       else 
        alert('success'); 
      } 
     }); 

例JSON:

[{ "ContentPreferences":[], 
    "Email":"[email protected]", 
    "FirstName":"Mark", 
    "Id":"aa2f1944-e739-4329-9546-a21f52c02448", 
    "KnownAs":"Mark", 
    "LastName":"Jones", 
    "TimeStamp":"\/Date(1323804151906)\/" 
}] 
+0

如果直接导航到HTTP`你会得到什么:// fooed。 cloudapp.net/users?callback = foo`你可以将它粘贴到你的问题中吗?我几乎可以打赌`json`是有效的`json`,但不是`jsonp`。 – 2011-12-13 19:18:14

回答

1

您的JSON是无效的JSONP。它应该是这样的,而不是:

foo([{ "ContentPreferences":[], 
    "Email":"[email protected]", 
    "FirstName":"Mark", 
    "Id":"aa2f1944-e739-4329-9546-a21f52c02448", 
    "KnownAs":"Mark", 
    "LastName":"Jones", 
    "TimeStamp":"\/Date(1323804151906)\/" 
}]) 

这意味着API不支持JSONP或需要不同PARAM比callback=?

+0

对,所以我必须得到服务才能返回JSONP或尝试其他内容... – AwkwardCoder 2011-12-13 20:01:57