Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery Ajax jsonp无效json的无效令牌错误,但看起来正确_Javascript_Jquery_Json_Ajax - Fatal编程技术网

Javascript Jquery Ajax jsonp无效json的无效令牌错误,但看起来正确

Javascript Jquery Ajax jsonp无效json的无效令牌错误,但看起来正确,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我目前正试图在jquery中使用OSRSAPI 在此之前,我曾在rails中的HttpParty中使用过它,但我想看看是否可以用javascript的方式来实现 然而,我似乎在解析响应的内容时遇到了问题,尽管它看起来是有效的 我的代码如下所示: // jquery Stuff $( document ).ready(function() { var url_test = "http://services.runescape.com/m=itemdb_oldschool/api/catalog

我目前正试图在jquery中使用OSRSAPI

在此之前,我曾在rails中的HttpParty中使用过它,但我想看看是否可以用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." );
  });

});
这是我从api得到的“中断”响应,该api抛出了未捕获的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错误。所以我有点卡住了,任何帮助都会很好,谢谢

返回的是
JSON
,而不是
JSONP
。你的回答看起来像

{"name" : "Joe"}   //json format
jQuery
正期待着这样的结果:

jQuery42534534636363({"name" : "Joe"})   //jsonp format
如果您确实需要使用
JSONP
来绕过同源策略,那么服务器服务需要能够实际返回JSONP响应

如果应用程序不存在同源策略的问题,那么您只需要在
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." );
  });

});
示例(包装函数)


有没有办法解决这个问题,因为我没有服务器,它不是我的端点,rails中的httparty似乎出于某种原因可以工作。(格式混乱)但我可以处理字符串操作。任何方式我都可以得到响应,而不是自动解析。你可以简单地添加一个插件(允许跨源),或者你可以从