2012-06-06 11 views
6

Tôi đang tạo một bộ sưu tập đơn giản để chụp ảnh từ tài khoản picasa với html + javascript.javascript - Nguồn gốc http://127.0.0.1 không được phép bởi Access-Control-Allow-Origin

Trước tiên, hãy lấy danh sách album và sau đó, cho từng album, nhận danh sách ảnh. Truy vấn đầu tiên hoạt động tốt, nhưng những người khác trả về lỗi này trong trình duyệt (Chrome):

GET https://picasaweb.google.com/data/entry/base/user/114476218463019618611/albumid/5750459375839674337?alt=json&hl=en_US jquery.js 404 (Not Found): 8240 XMLHttpRequest không thể tải https://picasaweb.google.com/data/entry/base/user/114476218463019618611/albumid/5750459375839674337?alt=json&hl=en_US. Tệp gốc: // không được Access-Control-Allow-Origin cho phép.

Đây là mã:

  var json_Album_URI = "https://picasaweb.google.com/data/feed/base/" 
       + "user/"  + username 
       + "?alt="  + "json" 
       + "&kind="  + "album" 
       + "&hl="  + "en_US" 
       + "&fields=" + "entry(media:group,id)" 
       + "&thumbsize=" + 104 
       + "&authkey=" + authkey; 

      $.ajax({ 
        type: 'GET', 
        url: json_Album_URI, 
        success : function(resp) { 
          albums = resp.feed.entry; 
        }, 
        dataType: 'json', 
        async: false 
      }); 
      for (var id in albums) { 
        var album = albums[id]; 
        var album_ID = album.id.$t.split('/')[9].split('?')[0]; 
        var json_Photo_URI = "https://picasaweb.google.com/data/feed/base/" 
          + "user/"  + username 
          + "/albumid/" + album_ID 
          + "?alt="  + "json" 
          + "&kind="  + "photo" 
          + "&hl="  + "en_US" 
          + "&fields=" + "entry(media:group)" 
          + "&thumbsize=" + 104 
          + "&authkey=" + authkey; 
        //this is the ajax call that fails 
        $.ajax({ 
          type: 'GET', 
          url: json_Photo_URI, 
          success: function(photos) { 
            console.log(photos); 
          }, 
          dataType: "json", 
          async: false, 
        }); 
      } 

Cảm ơn.

EDIT:

tôi notica rằng nếu tôi loại bỏ các dòng:

      + "/albumid/" + album_ID 

công trình (tất nhiên, nếu không có sự phản ứng dự kiến).

+4

thử JSONP thay vì json cho tên miền chéo ajax gọi – Nemoy

+2

Dưới đây là một phiên bản JSONP hoạt động trên jsFiddle: http://jsfiddle.net/ XsfNE /. Bạn không chắc chắn nếu điều này ngụ ý rằng nó hoạt động cục bộ, mặc dù. (Tôi đã sử dụng một ID ngẫu nhiên được tìm thấy trên Internet vì URL của bạn là 404.) – pimvdb

Trả lời