通过jQuery从JSON的外部链接获取数据

时间:2014-06-25 03:05:58

标签: javascript jquery json parsing

我试图通过jQuery从JSON数据中读取数据。公共汽车因为某些原因而不能工作。

这是我的JSON文件:http://goo.gl/PCy2th 这是我获取数据的代码:

$.getJSON("http://goo.gl/PCy2th", function(data){

  $.each(data.PlayListArray, function(key, val){
     alert(val.URL);
  });
});

以下是演示:http://jsfiddle.net/SVk77/

有什么想法来解决它吗?

2 个答案:

答案 0 :(得分:5)

您可以创建用于获取所有音乐网址的网络服务

PHP代码:

<?php
    header('content-type: application/json; charset=utf-8');
    header("access-control-allow-origin: *");

$array = array("https://soundcloud.com/danial-sabagh/mane", "https://soundcloud.com/ajamband/gole-iran", "https://soundcloud.com/bibakofficial/kooch", "https://soundcloud.com/bibakofficial/mohammad-bibak-in-niz-bogzarad","https://soundcloud.com/kaishakhay/whine-and-kotch-j-chapri-f","https://soundcloud.com/amirtataloo/merci","https://soundcloud.com/amirtataloo/bikhiyal");// you can also apply your business logic and get url from database

echo json_encode(array("PlayListArray"=>$array));
    return;
?>

用于调用&amp ;;的JQuery代码从php web服务获得响应

Javascript代码:

$.ajax({
      url: 'getMusicURL.php',
      type: "GET",
      dataType:'json',
      success:function(data){

    console.log(data);//using object data you access all music array 

             for(var i=0;i<data.PlayListArray.length;i++){
          console.log(data.PlayListArray[i]);
     }
}
});

答案 1 :(得分:1)

您可以使用跨源XMLHttpRequest

来实现

$(document).ready(function(){        
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://goo.gl/PCy2th", true);
    xhr.onreadystatechange = function() {
      if (xhr.readyState == 4) {        
        // JSON.parse does not evaluate the attacker's scripts.
        var resp = JSON.parse(xhr.responseText);
      }
    }
    xhr.send();    
});

看起来你的服务器返回json不支持请求。

Demo