2012-03-10 38 views
6

Điều tôi muốn làm là lấy hình ảnh thu nhỏ Vimeo bằng cách lấy dữ liệu json được trả về bởi một yêu cầu. Tôi không thể sử dụng jquery do tập tin javascript là một tập tin từ xa nhỏ mà người dùng gọi và jquery sẽ tăng kích thước của nó nhiều lần.Nhận JSON từ xa không có Jquery?

Tôi đã xem và mọi thứ dường như đang nói về jquery hoặc nhận nó bằng ngôn ngữ khác (ví dụ: php).

Tôi đã tìm thấy tôi cần phải làm điều này cho đến nay:

var script = document.createElement('script'); 
script.src = theUrlToMakeTheRequest; 
document.getElementsByTagName('head')[0].appendChild(script); 

Tôi không chắc chắn những gì tôi cần phải thực hiện gọi lại và không chắc chắn những gì tôi cần phải làm để có thể sử dụng các url mà được nối thêm.

+2

JSONP hoặc CORS? –

+0

@ MДΓΓБДLL JSONP được hỗ trợ. – qitch

+0

@qitch: Định dạng dữ liệu được trả về bởi yêu cầu là gì? Bạn có chắc đây là JSON không, ví dụ: JSONP? Cung cấp cho chúng tôi nội dung chính xác của sự phục hồi có sẵn tại URL được lưu trữ trong 'theUrlToMakeTheRequest'. – Tadeck

Trả lời

7

Từ tài liệu vimeo của

http://vimeo.com/api/docs/simple-api

Dường như bạn có thể đặt một callback = tham số myfunction? Vào cuối url để làm một loại jsonp của callback. Vì vậy, mã của bạn sẽ có thể trông giống như thế này.

function myfunction(data) { 
    alert(data); 
} 

var script = document.createElement('script'); 
script.src = theUrlToMakeTheRequest + '?callback=myfunction'; 
document.getElementsByTagName('head')[0].appendChild(script); 

Trang tải xuống của họ có các ví dụ cho những gì bạn đang cố gắng làm. http://vimeo.com/api/docs/downloads

+1

(Điều này còn được gọi là JSONP.) –

3

Bạn có thể làm điều đó với một XMLHttpRequest liệu,

Hoặc cho một thư viện nhỏ nhẹ có thể làm điều đó kiểm tra zepto.js

Nếu bạn chỉ bao gồm zepto.js và ajax.js từ .. . https://github.com/madrobby/zepto/tree/master/src

Bạn sẽ có một giải pháp tương thích JQuery trong 30k javascript không nén (có thể là < 4k minified)

+0

Tôi không chắc rằng giải pháp XMLHttpRequest sẽ hoạt động trong trường hợp này vì nó nằm trên một tên miền khác. –

+0

Hmm, vâng, tùy thuộc vào việc Vimeo có gửi tiêu đề 'Access-Control-Allow-Origin' hay không thì cuộc gọi tên miền chéo có thể bị chặn. Dường như tuyến đường JSONP là đặt cược tốt nhất theo các câu trả lời khác. – danmux

Các vấn đề liên quan