jQuery $ .getJSON抛出了意外的令牌

时间:2015-04-04 23:48:02

标签: javascript json steam-web-api

我是一名JavaScript初学者。我想使用以下URL从Steam Market检索一些数据:

https://steamcommunity.com/market/priceoverview/?country=PL&currency=3&appid=730&callback=?&market_hash_name=Operation%20Vanguard%20Weapon%20Case#

我在浏览器中收到此回复:

{"success":true,"lowest_price":"0,09\u20ac","volume":"1,017","median_price":"0,10\u20ac"}

但我无法在JS中使用它。

var amount = prompt("How many cases do you have?\t");
$.getJSON("http://steamcommunity.com/market/priceoverview/?country=PL&currency=3&appid=730&callback=?&market_hash_name=Operation%20Vanguard%20Weapon%20Case#",
    function(json) {
    var raw_price = json.lowest_price;
    var price = raw_price.split('&')[0];
    var price_total = price*parseInt(amount);
    alert(price_total + '€');
});

它只是抛弃了我:

  

Uncaught SyntaxError:意外的令牌:

此代码有什么问题?

2 个答案:

答案 0 :(得分:0)

这是你的问题。我跑了

$.ajax( "https://steamcommunity.com/market/priceoverview/?country=PL&currency=3&appid=730&callback=?&market_hash_name=Operation%20Vanguard%20Weapon%20Case" )
  .done(function() {
    alert( "success" );
  })
  .fail(function(jqXHR, textStatus) {
console.log(jqXHR );
});

获得此输出

XMLHttpRequest cannot load https://steamcommunity.com/market/priceoverview/?country=PL&currency=3&appid=730&callback=?&market_hash_name=Operation%20Vanguard%20Weapon%20Case. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://fiddle.jshell.net' is therefore not allowed access.

这意味着您无法使用JQuery执行此操作。尝试使用Steam的Web API:https://developer.valvesoftware.com/wiki/Steam_Web_API

答案 1 :(得分:0)

这个问题最终被我解决了。问题是由于 Access-Control-Allow-Origin

,Steam不允许在浏览器中使用JavaScript代码访问其市场数据。

我已经将我的JS代码重写为PHP并发送了相同的请求,但这一次是从我自己的WWW服务器上进行的:

libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value

像魅力一样工作。