如何从URL中解析json

时间:2011-12-14 15:42:55

标签: javascript

我的网址包含所有json格式。

http://api.musixmatch.com/ws/1.1/track.lyrics.get?apikey=d34fb59a16877bd1c540aa472491825b&track_id=12414632

function load() { 
    dashcode.setupParts(); 
    var link = 'http://api.musixmatch.com/ws/1.1/track.search?apikey=d34fb59a16877bd1c540aa472491825b&q_track=back%20to%20december&page_size=10'; 
   req.open = ("GET", link, false); 
   req.onreadystatechange = readXML(); 
   req.send(null); 
}

function readXML(){ 
    alert(req.responseText); 
}

这段代码一直都在说null。 有什么方法可以检索那些json文本

2 个答案:

答案 0 :(得分:2)

问题在于req.onreadystatechange = readXML();。您正在分配函数的结果而不是函数本身(作为回调)。

你想要req.onreadystatechange = readXML;。虽然我必须说我不确定这段代码应该如何工作。不是关于如何制作XHR,也不是关于外部域。

答案 1 :(得分:1)

正确用法如下。您可以检查此链接http://jsfiddle.net/UH4KY/1/由于不允许跨域脚本,链接将提示未定义。您可以设置Access-Control-Allow-Origin并测试代码。     function readXML(req){         警报(REQ);     }

function load() {
    var xmlhttp;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    var link = 'http://api.musixmatch.com/ws/1.1/track.search?apikey=d34fb59a16877bd1c540aa472491825b&q_track=back%20to%20december&page_size=10';

    //req.open = ("GET", link, false);
    xmlhttp.onreadystatechange = function(){ alert(xmlhttp.responseText); }
    xmlhttp.open("GET", link, false);
    xmlhttp.send(null);
}