在JSONP中不调用回调函数

时间:2014-08-06 08:46:49

标签: javascript ajax jsonp

我正在使用jsonP和新手。我已经在不同的网站上阅读了它,并尝试了一个简单的例子,但没有调用回调函数。控制台中没有错误没有异常,但仍然无法在控制台上获取数据。 这是我正在尝试的代码

function getJSONPData(){
    var url = "http://nvd3.org/examples/cumulativeLineData.json?callback=parseRequest";
    var script = document.createElement('script');
    script.setAttribute('src', url);            
    document.getElementsByTagName('head')[0].appendChild(script);
}
function parseRequest(response)
{

    try
    {
        alert("got response");
        console.log(response);
    }
    catch(an_exception) 
    {
        alert('exception occured '+an_exception);
    }
}

在chrome的web控制台中,在“网络”选项卡中,我可以看到所请求的json文件的状态为“200 OK”。另外,我可以在chrom webconsole的“网络”选项卡的“响应”部分中看到所请求的json文件的数据。为什么我在尝试打印时没有直接在控制台上获取它。我调试了代码,发现回调方法没有被调用。 为什么会这样?我做错了什么或遗失了什么?感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您正在调用的URL的服务器http://nvd3.org/examples/cumulativeLineData.json?callback=parseRequest正在使用JSON文档而不是JSONP应用程序进行响应。

对于要触发的回调,您需要一个JSONP响应。