返回Json语法错误

时间:2014-09-20 22:23:20

标签: javascript jquery ajax json

我正在尝试显示作为json数据返回的数据。但我收到的数据是错误的。

这是我的代码:

  $.ajax({
     url:"http://excelonlineclasses.com/test.json",
     dataType: "jsonp",
     success: function(data){
         alert(data.facets.stats.total);
     } 
  });

我尝试了$.getJson但它不起作用 请找小提琴链接http://jsfiddle.net/6Yj5h/1680/

请给我解决方案。提前谢谢

2 个答案:

答案 0 :(得分:0)

ne1410s是正确的:URL提供JSON,而不是JSONP。

您有三种选择:

  1. 获取提供JSONP的网址
  2. 获取服务器以支持CORS(跨源资源共享)
  3. 编写您自己的获取数据的服务器端脚本,然后将其作为脚本从同一个域提供给您的脚本
  4. 我相信这是第四种选择,但老实说,它只是从这里得到更多的黑客攻击。

    要让服务器支持CORS,您可能需要在标题中添加一些内容,例如:

    Access-Control-Allow-Origin: http://excelonlineclasses.com/
    Access-Control-Allow-Methods: GET
    Access-Control-Allow-Headers: content-type
    Access-Control-Max-Age: 10
    

    ......但它并没有结束。浏览器可以发送OPTIONS请求(除了GET或POST)以了解服务器对CORS的感受。以上就是服务器应该返回的内容。

    如果您想设置CORS,我建议您阅读http://enable-cors.org/

    之类的内容

答案 1 :(得分:0)

如果您收到跨源请求错误,那么您可以设置标题以允许跨源请求在php中,您可以通过添加以下代码行来实现此目的:

header('Access-Control-Allow-Origin: *');

(但请确保您确实要启用跨源请求 - *来自任何网站!并且您知道自己在做什么。在某些情况下出于安全原因,您可能不想允许此操作)