jquery json错误,当我想从steam市场获取json时
Posted
技术标签:
【中文标题】jquery json错误,当我想从steam市场获取json时【英文标题】:jquery json error, when i want to get json from steam market 【发布时间】:2015-01-14 23:00:28 【问题描述】:我对 Steam 的 ajax 请求有疑问。 我想从 Steam 市场获取价格。
function jPrice(httpToJson)
$.getJSON(httpToJson, function(data)
return data.median_price;
);
当我调用函数时
jPrice('http://steamcommunity.com/market/priceoverview/?country=US¤cy=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¤cy=1&appid=730&market_hash_name=StatTrak%E2%84%A2%20P250%20%7C%20Steel%20Disruption%20%28Factory%20New%29。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“http://lоcalhоst:63342”。
我试试:
将 php 标头 Access-Control-Allow-Origin 设置为 * JSONPRESULT -> 同样的事情(错误)!
也许有人知道这个问题的解决方案?
【问题讨论】:
【参考方案1】:通过将标头 Access-Control-Allow-Origin 设置为 * 或发送 JSONP 请求,您将无法通过直接针对 steamcommunity.com 的 ajax 请求在浏览器中获取结果。
为此,steamcommunity.com 应在响应中添加 CORS 标头(您看到的错误消息意味着它们不存在),或将输出格式化为 JSON-P。他们也没有这样做。
这是一个浏览器限制,不允许通过 ajax 加载来自不同来源的内容。您需要做的是引入一个中间件,让您的后端服务器向 steamcommunity.com 发出请求并返回相同的响应,并对您的服务器进行 ajax 调用。这将起作用,您的后端正在发送请求,并且由于它不是浏览器请求,因此响应将登陆,而您的 ajax 调用也将能够获得响应,因为它是针对同一域发出的
【讨论】:
感谢您的回答!我再次尝试设置 CORS。我搜索 php 脚本 there 当我在派生的页面上重新加载服务器和浏览器时“你有 CORS!”但是当我尝试获取 ajax 请求 => 相同的错误 :( 欢迎您。问题是他们的服务器没有配置 CORS。这篇文章描述的是您配置服务器以支持跨域请求的方式。你应该做的是制作一个 PHP 脚本来发送你从 ajax 发送的请求,并返回响应。而且,从您的 ajax 目标您的页面以上是关于jquery json错误,当我想从steam市场获取json时的主要内容,如果未能解决你的问题,请参考以下文章
当我想从 ArrayList 中的请求 json 添加一个对象时