希望这个头衔不是太神秘.发生的事情是我有一个jQuery
AJAX脚本,我试图用来访问远程服务器上的API,它返回一个
JSON响应.但是,API将
JSON作为MIME类型“text / html”(在响应头中)而不是“application / json”返回.很明显,我只需要将返回的内容类型从文本更改为JSON,以使AJAX调用正确地解释数据.
不幸的是,这种情况并非如此.我已经以多种不同的方式尝试过这种方式,但都失败了.最接近我得到这个API调用的工作是调试器告诉我“资源被解释为脚本但是使用MIME类型text / html传输”.并且AJAX调用错误输出我的调试消息以JSON格式转储jqXHR对象,它告诉我:{“readyState”:4,“status”:200,“statusText”:“parsererror”}
这是我的代码的一个例子(虽然我已经多次改变代码,但是我试图让它工作,但这个版本似乎最接近正确):
$.ajax({ type: 'GET',url: 'http://username:api-key@www.kanbanpad.com/api/v1/projects.json',contentType: 'application/json',dataType: 'jsonp',converters: { 'jsonp': jQuery.parseJSON,},success: function(data) { alert(data); },error: function(jqXHR,textStatus,errorThrown) { console.log(JSON.stringify(jqXHR)); console.log(textStatus+': '+errorThrown); } });
如果有人能够弄清楚我需要采取哪些不同的方式来完成这项工作,我将非常感激.
值得注意的是,如果您将API URL复制/粘贴到浏览器地址栏并按下go,它会使用正确的响应头(“application / json”)提供正确的JSON响应