我目前正在尝试在jquery中使用OSRS api。
我之前使用过这个版本,并在rails中使用了httparty,但想知道我是否可以用javascript方式进行操作。
然而,尽管看起来有效,我似乎在解析响应的问题时遇到了问题。
我的代码如下所示:
// jquery Stuff
$( document ).ready(function() {
var url_test = "http://services.runescape.com/m=itemdb_oldschool/api/catalogue/detail.json?item=207&format=json";
$.ajax({
crossDomain: true,
dataType: "jsonp",
url: url_test ,
}).done(function ( data ) {
console.log(data);
alert( "Load was performed." );
});
});
这是“破碎的”#39;响应我从api中获取了抛出Uncaught SyntaxError错误:意外的令牌:
{"item":{"icon":"http://services.runescape.com/m=itemdb_oldschool/1492081307848_obj_sprite.gif?id=207","icon_large":"http://services.runescape.com/m=itemdb_oldschool/1492081307848_obj_big.gif?id=207","id":207,"type":"Default","typeIcon":"http://www.runescape.com/img/categories/Default","name":"Grimy ranarr weed","description":"It needs cleaning.","current":{"trend":"neutral","price":"7,338"},"today":{"trend":"negative","price":"- 20"},"members":"true","day30":{"trend":"positive","change":"+2.0%"},"day90":{"trend":"positive","change":"+8.0%"},"day180":{"trend":"positive","change":"+8.0%"}}}
有没有我可以正确加载这些数据。我认为这是因为如果我在哪里猜测使用jsonp。但是,我似乎无法加载api扔json数据类型,因为它抛出一个CORS错误。所以我有点卡住,对此的任何帮助都将非常感谢!
答案 0 :(得分:0)
您要归还的是JSON
,而不是JSONP
。您的回复类似于
{"name" : "Joe"} //json format
和jQuery
期待这样的事情:
jQuery42534534636363({"name" : "Joe"}) //jsonp format
如果您确实需要使用JSONP
来绕过相同的原始策略,那么服务器服务需要能够实际返回JSONP响应。
如果相同的原始政策不适合您的应用,那么您只需要将dataType
来电中的jQuery.ajax
修改为json
而不是jsonp
}。
// jquery Stuff
$( document ).ready(function() {
var url_test = "http://services.runescape.com/m=itemdb_oldschool/api/catalogue/detail.json?item=207&format=json";
$.ajax({
crossDomain: true,
dataType: "json",
url: url_test ,
}).done(function ( data ) {
console.log(data);
alert( "Load was performed." );
});
});
JSONP示例(包装函数)