0

我正在尝试从 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);

});
4

3 回答 3

0

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

于 2013-04-09T20:02:51.023 回答
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');
        }
    });
});
于 2013-04-10T15:33:31.073 回答
0

使用 Yahoo 查询语言 (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);
    }
});

});
于 2013-04-10T15:39:32.397 回答