【问题标题】:I am getting a json parse error on a cross-domain ajax call not sure how to get rid of the issue我在跨域 ajax 调用中遇到 json 解析错误,不知道如何解决这个问题
【发布时间】:2012-11-13 08:50:47
【问题描述】:

电话看起来像这样

$.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 函数中流出。关于为什么第一个代码 sn-p 会出错的任何帮助?

【问题讨论】:

    标签: ajax jquery cross-domain jsonp


    【解决方案1】:

    我真的不确定为什么第一个 sn-p 不起作用,但尝试以下方法

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

    在我的情况下工作。

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 2019-09-10
      • 2019-12-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      相关资源
      最近更新 更多