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

Javascript jQuery$.getJSON抛出意外的令牌,javascript,json,steam-web-api,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_pr

我是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 + '€');
});
这让我感到:

未捕获的语法错误:意外标记:


此代码有什么问题?

这是您的问题。我跑

$.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:

我最终解决了这个问题。问题在于,由于访问控制允许源代码,Steam不允许在浏览器中使用JavaScript代码访问其市场数据

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

function get_price() {
    $url = "https://steamcommunity.com/market/priceoverview/?country=PL&currency=3&appid=730&callback=?&market_hash_name=Operation%20Vanguard%20Weapon%20Case";
    $json = file_get_contents($url);
    $price = json_decode($json);
    $price_case = $price->{"lowest_price"};
    return number_format($price_case, 2);
}

工作起来很有魅力。

我不知道如何使用Steam的Web API。你能给我一个例子来获取物品的价格吗?据我所知,你有两个选择:1如果你有一个域名:。2如果您使用的是Node.js、PHP等,那么您可以使用如下内容。这个问题没有简单的答案,这有点愚蠢。没有Steam API来获取市场上商品的价格。OP使用的URL就可以了。无论他使用的是API还是上面提到的URL,他都会收到这个错误,因为Steam不允许从JavaScript访问他们的URL。谷歌“JavaScript跨域请求”。请参见我关于如何在Steam市场上获得商品价格的较老答案: