我正在尝试从网站(特别是Yummly)获取一些API数据,看起来当我尝试执行JSONP请求时,我会收到JSON数据。这导致" Uncaught SyntaxError:UnexpectedToken:"。
尝试执行此操作的代码是:
var keywords = $('#input-text').val();
var url = "http://www.yummly.com/api/recipesq="+keywords+"&_app_id=<snipped-app-id>&_app_key=<snipped-api-key>&";
$.ajax({
type: 'GET',
url: url,
dataType: 'jsonp',
//dataType: 'jsonp json'
success: function() { console.log('Success!'); },
error: function(data, data2) { console.log(data); },
//jsonp: false,
//jsonpCallback: 'recipeGet'
});
});
我试图通过重载dataType从JSONP转换为JSON,但是这并没有导致与上面不同的结果。我也尝试过更改回调函数,但是当我收到语法错误时它没有转到函数。当我不使用JSONP并且只使用JSON时我收到了一个&#34; XMLHttpRequest无法加载Origin-Control-Allow-Origin不允许使用Origin。&#34;。
任何帮助都会受到赞赏,我一直在努力解决这个问题。
答案 0 :(得分:9)
我是负责Yummly API的开发人员之一。
Yummly API支持JSONP(documentation解释了如何),但您的请求存在一些问题。
API网址应为
http://api.yummly.com/v1/api/recipes(删除http后的空格)
应该有'?' / recipes和q之间(q是参数,/ v1 / api / recipes是路径)
最后,你的app_key是秘密的。请不要在Stack Overflow等公共网站上发布。我已将其撤消,请转到https://developer.yummly.com以生成新的。