Javascript 从URL JSON检索数据
我正在尝试从外部JSON文件检索数据。该网站有一个允许公众访问的api。我的问题是我无法访问数据。现在我显示undefined。老实说,我认为这是不可能从服务器端访问的。现在有办法使用php和curl函数了吗Javascript 从URL JSON检索数据,javascript,html,json,xmlhttprequest,Javascript,Html,Json,Xmlhttprequest,我正在尝试从外部JSON文件检索数据。该网站有一个允许公众访问的api。我的问题是我无法访问数据。现在我显示undefined。老实说,我认为这是不可能从服务器端访问的。现在有办法使用php和curl函数了吗 var dataFromServer; function getPrice() { $.ajax({ dataType: "jsonp", url: "http://forums.zybez.net/runescape-2007-prices/api/flax", succ
var dataFromServer;
function getPrice() {
$.ajax({
dataType: "jsonp",
url: "http://forums.zybez.net/runescape-2007-prices/api/flax",
success: handleData(dataFromServer)
});
}
function handleData(data) {
document.write(data);
//do some stuff
}
我认为问题来自“访问控制允许来源” 有关it的更多信息,请查看: 您可以使用以下内容:
$.ajax({
dataType: "jsonp",
url: "http://forums.zybez.net/runescape-2007-prices/api/flax",
success: function(e){console.log(e);}
});
将其包含在HTML标题中:
<meta http-equiv="Access-Control-Allow-Origin" content="*"/>
然后使用以下代码(JS):
$.getJSON(
'将\u THAT\u替换为\u JSON\u URL',
功能(数据){
var-tr;
$。每个(数据、函数(键、值){
tr=$('');
tr.append(“”+val.jsonfield+“”);
$('table')。追加(tr);
});
});
只需替换URL和jsonfield。此处显示了一个示例:
您是否收到任何错误消息(例如,在控制台中?)您好欢迎使用SO,请您通读并提供案例的所有相关信息?例如,可能是错误消息?:)跨源请求被阻止可能是因为数据不可公开访问?应该是的,他们的网站在这里。我认为需要有一个允许获取数据的头,即服务器端。现在我可以使用php检索数据了吗?对于这种问题,我们有两种方法:1)在服务器端设置header参数。2) 使用jsonpCan,您能更详细地解释一下吗?请问,如果url中没有回调,如何使用jsonp?
$.getJSON(
'REPLACE_THAT_WITH_THE_JSON_URL',
function(data){
var tr;
$.each (data, function (key, val) {
tr = $('<tr/>');
tr.append('<td>' + val.jsonfield + '</td>');
$('table').append(tr);
});
});