jquery json错误,当我想从Steam市场获取JSON时

jquery json error, when i want to get json from steam market

本文关键字:Steam 获取 JSON 错误 json jquery      更新时间:2023-09-26

我对 Steam 的 ajax 请求有问题。我想从蒸汽市场获得价格。

function jPrice(httpToJson) {
    $.getJSON(httpToJson, function(data) {
        return data.median_price;
    });
}

当我调用函数时

jPrice('http://steamcommunity.com/market/priceoverview/?country=US&currency=1&appid=730&market_hash_name=StatTrak%E2%84%A2%20P250%20%7C%20Steel%20Disruption%20%28Factory%20New%29');

我收到一个错误:

XMLHttpRequest 无法加载 http://steamcommunity.com/market/priceoverview/?country=US&currency=1&appid=730&market_hash_name=StatTrak%E2%84%A2%20P250%20%7C%20Steel%20Disruption%20%28Factory%20New%29。请求的资源上不存在"访问控制允许源"标头。因此,不允许访问原产地"http://l оcalhоst:63342"。

我尝试:

  • 将 php 标头 Access-Control-Allow-Origin 设置为 *
  • JSONP

结果 -> 同样的事情(错误)!

也许有人知道这个问题的解决方案?

您将无法通过直接针对 steamcommunity.com 发出的 ajax 请求在浏览器中获取结果,既无法通过将标头 Access-Control-Allow-Origin 设置为 *,也无法通过发送 JSONP 请求。

为此,steamcommunity.com 应该在响应中添加 CORS 标头(您看到的错误消息意味着它们不存在),或者将输出格式化为 JSON-P。他们也没有这样做。

这是浏览器限制,不允许通过 ajax 加载来自不同来源的内容。你需要做的是引入一个中间件,所以让你的后端服务器对 steamcommunity.com 发出请求并返回相同的响应,并对你的服务器进行ajax调用。这将起作用,您的后端正在发送请求,并且由于它不是浏览器请求,因此响应将着陆,因此您的ajax调用也将能够获得响应,因为它是针对同一域发出的