检索并显示jQuery GET请求的结果

时间:2013-04-09 17:42:25

标签: javascript jquery ajax api get

我正在尝试从ESV API检索和显示数据:http://www.esvapi.org/
它正在使用codecademy.com域,但不是esvapi.org域。
见小提琴:http://jsfiddle.net/BinaryAcid/yqCcn/

<input type="button" value="get data" id="btn" >

$("#btn").click(function() {

    var response = '';
    $.ajax({ type: "GET",   
        // url: "http://www.esvapi.org/v2/rest/passageQuery?key=IP&passage=John+1",
        url: "http://www.codecademy.com/",
        async: false,
        success : function(text)
        {
         response = text;
        }
    });

    document.write(response);

});

3 个答案:

答案 0 :(得分:0)

我尝试了小提琴示例,但没有使用第一个或第二个URL,问题与跨域调用有关,除非使用jsonp,否则无法直接调用不在您自己域中的服务或者在服务器中设置一些标题,明确允许跨域调用(这种技术在IE中不起作用)

答案 1 :(得分:0)

这很有效。见jsfiddle:http://jsfiddle.net/BinaryAcid/qDrw8/1/

<input type="button" value="get data" id="btn" >

$("#btn").click(function() {
reference='Jhon+1'
$.getJSON('http://www.esvapi.org/crossref/ref.php?reference=' + reference + '&callback=?',
    function(text){
        if(text){
            $('body').html(text.content);
        } else {
            $('body').html('Error');
        }
    });
});

答案 2 :(得分:0)

使用Yahoo Query Language(YQL)的解决方案。见jsfiddle:http://jsfiddle.net/BinaryAcid/jbCuH/1/

<input type="button" value="get data" id="btn">

$("#btn").click(function () {
var response = '';
var url = "http://www.esvapi.org/v2/rest/passageQuery?key=IP&passage=John+1";
var yql = "select content from data.headers where url='" + url + "'";
$.ajax({
    type: "GET",
    url: "http://query.yahooapis.com/v1/public/yql?q=" + encodeURIComponent(yql) + "&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?",
    async: false,
    dataType: "json",
    success: function (data) {
        response = data.query.results.resources.content;
        document.write(response);
    }
});

});