0

电话看起来像这样

$.ajax({
  url: url,
  crossDomain: true,
  dataType: 'jsonp',
  success: function(){console.log('success');}
})

从服务器代码它是这样的

string data = callback + "(" jsonData + ")";
send("application/javascript",data);

jsonData 是有效的,我很确定。我已经在许多在线 json 验证器上对其进行了测试。我还尝试在服务器代码中将内容类型从 application/javascript 切换到 application/json ,但没有区别。

我让它工作的唯一方法是覆盖发送给我的 jquery 的回调函数,并让它调用我自己的全局函数,而不是调用 jquery 成功函数。这是该解决方法的代码

$.ajax({
   url: url,
   crossDomain: true,
   dataType: "jsonp",
   jsonpCallback: "onMyDataReceived"       
 })

  function onMyDataReceived(jsonData){  doStuff(jsonData ); }

但我觉得这更像是一种 hack,而不是让它自然地从 $.ajax.sucess 函数中流出。关于为什么第一个代码片段会出错的任何帮助?

4

1 回答 1

0

我真的不确定为什么第一个片段不起作用,但尝试以下

$.getJSON(url+"&callback=?",function(data){ console.log(data);})

在我的情况下工作。

于 2012-11-13T00:50:47.833 回答