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

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

});
于 2013-04-10T15:39:32.397 に答える
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

私はフィドルの例を試しましたが、最初または 2 番目の URL では機能しませんでした。問題はクロスドメイン呼び出しに関連しています。jsonp を使用するか、いくつかの設定をしない限り、自分のドメインにないサービスを直接呼び出すことはできません。クロスドメイン呼び出しを明示的に許可するサーバーのヘッダー (この手法は IE では機能しません)

于 2013-04-09T20:02:51.023 に答える