0

jqueryで簡単なリクエストをしたいだけですが、うまくいきません。どうしてか分かりません。私が何を間違えたのか教えてもらえますか?

http://jsfiddle.net/k6uJn/

コードがあります。

$(document).ready(function() {
$.ajax({
    type: "GET",
    url: "http://api.asdasdasdsdsad.com",
    timeout: 5000,
    dataType: "json",
    success: function(data) {
        $.each(json, function(i, item) {
            $('.galleryThreeColumnList photoSwipe').append('<li><a href="' + item.photo + '"><img src="' + item.thumbnail + '" alt="' + item.id + '" /></a></li>')
        });
    },
    error: function(data) {
        console.log(data);
    }
});

});

グリーズ・エドクシル

4

4 に答える 4

2

これは、アクセスしようとしているサイトが自分のドメインとは異なるドメインにあるためです。

Javascript には、別のドメインの Web サイトから ajax 要求を行うことができない同じオリジン ポリシーがあります。

于 2012-11-28T19:50:09.930 に答える
1

通常、リモート ページの要求に AJAX を使用することはできません。クロム開発者コンソールが示唆するように、

XMLHttpRequest cannot load http://api.elublu.com/. Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.

理論的には CORS を使用してリモート ページをリクエストすることは可能ですが、この API でCORSが有効になっている場合は、

Access-Control-Allow-Origin:*

応答ヘッダーで。

于 2012-11-28T19:51:29.450 に答える
0
success: function(data) {

これは実際には次のようにする必要がありますか?宣言されていないさらに下のjsonという変数を使用しています...

success: function(json) {
于 2012-11-28T19:52:07.163 に答える
0

彼らの多くがすでに言及しているように、それはその問題を引き起こしている可能性のあるクロスドメイン呼び出しです.

同じオリジンポリシーの制限がないJSONPを使用できます(ただし、これが要件を満たしているかどうかはわかりません)

これを試して:

 $(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "http://api.asdasdasdsdsad.com",
        timeout: 5000,
        dataType: "jsonp",
        success: function(data){
            $.each(data, function(i, item){
                $('.galleryThreeColumnList photoSwipe').append('<li><a href="' + item.photo + '"><img src="' + item.thumbnail + '" alt="' + item.id + '" /></a></li>')
            });
        },
        error: function(data){
            console.log(data);
        }
    });
});
于 2012-11-28T20:53:29.667 に答える