2010-02-04 32 views
6

Tôi có tập lệnh bỏ phiếu này để kiểm tra xem tệp văn bản có được tạo trên máy chủ hay không. Hoạt động tốt ở địa phương nhưng không thành công khi tệp ở trên một miền khác. Làm thế nào tôi sẽ viết lại này để hỗ trợ tên miền chéo?Cuộc gọi tên miền chéo và sự cho phép của JQuery ajax

$.ajax({ 
    url: 'http://blah.mydomain.com/test.txt', 
    type: "GET", 
    success: function(result) { 
     //Success! 
     window.location.replace(Successful.aspx'); 
    }, 
    error: function(request, status, error) { 
     setTimeout("VerifyStatus(" + pollingInterval + ")"); 
    } 
    }); 

EDIT: tôi đã kết thúc bằng YQL để giải quyết vấn đề miền chéo và mặc dù nó hoạt động, YQL là rất chậm đó là bổ sung thêm khá nhiều trên không hiệu quả. Bất cứ ai có thể đề xuất một giải pháp tốt hơn cho các cuộc gọi JQuery miền chéo?

Trả lời

7

Đặt datatype để "JSONP" trên $.ajax() cuộc gọi của bạn. Bạn sẽ phải đảm bảo rằng phản hồi được định dạng đúng để nó hoạt động. Wikipedia có một phần tốt trên JSONP.

+0

Điều này là tốt nếu bạn có quyền kiểm soát nội dung của tập tin mục tiêu. – Bruce

+0

Tôi có quyền kiểm soát việc tạo tệp txt. Với jsonp, tôi có phải viết một chuỗi JSON trong tệp văn bản không? Tôi đang sử dụng ASP.NET và có vấn đề đặt tất cả cùng nhau – Nick

+0

@ user102533 đúng. Bạn có thể truy cập json.org để biết danh sách các serializers JSON JSON. –

4

Ajax không đi qua miền. Đặt cược tốt nhất của bạn là tạo một trang php trên miền địa phương thực hiện kiểm tra và chuyển đến -that- bằng cuộc gọi ajax của bạn.

+0

Điều này là tốt nếu bạn không kiểm soát nội dung của tệp đích. – Bruce

+0

Tôi có quyền kiểm soát tệp văn bản (tệp được tạo bởi dịch vụ) – Nick

+0

Câu trả lời đã lỗi thời. Có hai cách trực tiếp để thực hiện Ajax miền chéo và các cách gián tiếp. ** 1. ** [JSONP] (http://en.wikipedia.org/wiki/JSONP), sử dụng '

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