从失败的JSONP AJAX调用中挖出JSON数据

时间:2014-01-07 19:48:58

标签: ajax json jquery jsonp

当我进行这个AJAX调用时

var inputText = $('#job-search-field').val(); //for example "CSS"
$.ajax({
    url: 'http://api.arbetsformedlingen.se/platsannons/matchning',
    type: 'GET',
    dataType: 'json',
    crossDomain: true,
    data: {nyckelord: inputText}, //searches arbetsformedlingen.se for jobs containing the keyword "CSS".
    success: getAPIResponse,
})
.done(function() {
    console.log("success");
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});
}

我在控制台中收到此错误

“XMLHttpRequest无法加载http://api.arbetsformedlingen.se/platsannons/matchning?nyckelord=CSS。请求的资源上没有”Access-Control-Allow-Origin“标头。因此不允许原始http://localhost访问。”

当我进行此AJAX调用(http://jsfiddle.net/MSCbP/

var inputText = $('#job-search-field').val();
$.ajax({
    url: 'http://api.arbetsformedlingen.se/platsannons/matchning',
    type: 'GET',
    dataType: 'jsonp', //jsonp, not json
    crossDomain: true,
    data: {nyckelord: inputText},
    success: getAPIResponse,
})
.done(function() {
    console.log("success");
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});
}

我在控制台中收到此错误

“未捕获的SyntaxError:意外的令牌:”

第一个错误告诉我我没有权限检索数据,对吧?由于我没有找到关于如何获得API访问权限的信息,因此我非常有兴趣从第二次调用获得响应,这似乎有效。虽然我收到了控制台错误,但我在Chrome的开发工具的网络>响应标签中看到了我想要的json数据。

我似乎无法从“success:function()”获取JSON数据,还有其他方法可以获得它吗?

谢谢!

0 个答案:

没有答案