这可能已在其他地方得到解答,但我对我的生活却无法实现这一点。
这是我的HTML:
<!Doctype html>
<html ng-app>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="JS.js"></script>
</head>
<body>
<div>
</div>
</body>
</html>
这是我的Js文件:
$( document ).ready(function() {
console.log( 'ready!' );
$.ajax({
url: 'http://steamcommunity.com/market/priceoverview/?appid=730¤cy=3&market_hash_name=StatTrak%E2%84%A2%20M4A1-S%20|%20Hyper%20Beast%20(Minimal%20Wear)',
type: 'GET',
dataType: 'jsonp',
success: function(data) {
console.log(data);
var lowestprice = $( 'lowest_price' );
console.log($target);
}
});
});
查询结果为:
{"success":true,"lowest_price":"48,--\u20ac","volume":"12","median_price":"51,02\u20ac"}
但我得到了error uncaught SyntaxError: Unexpected token :
提前感谢您,我正在尝试使用网络编程,并且我正在努力工作,因为我更习惯面向对象编程。
答案 0 :(得分:1)
当您发出Ajax请求时,您说端点是JSONP。 api返回JSON,因此当它被注入页面时会产生你看到的错误。
你不能通过在Ajax调用中设置它来进行任何调用JSONP。 API需要支持JSONP。
检查API以查看它是否支持JSONP。如果它确实设置了它所需的任何查询字符串参数。如果它不支持它,则需要使用服务器端代理来进行呼叫。
答案 1 :(得分:0)
首先,它的跨域和网址应该被修改为使用HTTPS(我只是在w3school的编辑器上试过它。(否则,浏览器会阻止这样的网址...)
接下来,您需要使用JSON而不是JSONP。之后,您将开始获得状态200确定。这是我试过的
$.ajax({
url: 'https://steamcommunity.com/market/priceoverview/?appid=730¤cy=3&market_hash_name=StatTrak%E2%84%A2%20M4A1-S%20|%20Hyper%20Beast%20(Minimal%20Wear)',
type: 'GET',
dataType: 'json',
success: function(data) {
alert(data);
var lowestprice = $( 'lowest_price' );
console.log($target);
},
error: function(st, err) {
alert('vijay');
alert(st.status);
alert(err);
}
});
现在,您必须添加该跨域标头...此页面将详细告诉您详细说明。