错误:未调用jsonp_callback

时间:2016-03-17 14:32:40

标签: jquery ajax cross-domain jsonp

我正在尝试从我的api获取json端点,这个api使用HTTP-Basic-Auth(禁用测试)。当我尝试获取json时,jquery返回Error: jsonp_callback was not called

<script type="text/javascript" src="assets/js/jquery-2.1.1.js"></script>
<script type="text/javascript">
      $.ajax
      ({
        type: "GET",
        url: "http://localhost:8000/notifications?callback=jsonp_callback",
        dataType: 'jsonp',
        jsonp: 'callback',
        jsonpCallback: 'jsonp_callback',
        crossDomain: true,
        contentType: 'application/json',
        success: function(response){
          alert('done!'); 
        },
        error:function(jqXHR, textStatus, errorThrown){
          console.log(jqXHR);
          console.log(textStatus);
          console.log(errorThrown);
        }      
      });

    function jsonp_callback(r){
      console.log("function");
      console.log(r);
    }
</script>

我可以看到实际上查询完成的响应并返回json。

1 个答案:

答案 0 :(得分:0)

您必须验证您的响应是否返回回调函数中涉及的JSON的内容,而不仅仅是JSON内容。

这样的事情:

  

jsonp_callback({“foo”,“bar”});

jsonp技术包括返回一个包装在回调函数中的JSON对象。您发送的GET“回调”参数通常用于命名回调函数,并且更灵活一点。以平面PHP代码为例:

{{1}}