Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从URL JSON检索数据_Javascript_Html_Json_Xmlhttprequest - Fatal编程技术网

Javascript 从URL JSON检索数据

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

我正在尝试从外部JSON文件检索数据。该网站有一个允许公众访问的api。我的问题是我无法访问数据。现在我显示undefined。老实说,我认为这是不可能从服务器端访问的。现在有办法使用php和curl函数了吗

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);
         });
       });