Tôi đã làm việc với jQuery gần đây và chạy vào một vấn đề mà tôi không thể bao gồm nó trong một usercript vì XmlHttpRequest sử dụng same origin policy. Sau khi thử nghiệm thêm, tôi thấy rằng hầu hết các trình duyệt cũng hỗ trợ kiểm soát truy cập Cross-Origin Resource Sharing được xác định bởi W3C như một giải pháp cho các vấn đề có cùng chính sách gốc. Tôi đã thử nghiệm điều này bằng cách lưu trữ kịch bản lệnh jQuery trên máy chủ web cục bộ bao gồm tiêu đề http: Access-Control-Allow-Origin: *
http, cho phép tập lệnh được tải xuống bằng cách sử dụng XmlHttpRequest để nó có thể được bao gồm trong người dùng của tôi. Tôi muốn sử dụng phiên bản được lưu trữ của jQuery khi phát hành tập lệnh, nhưng cho đến nay thử nghiệm với các công cụ như http://www.seoconsultants.com/tools/headers Tôi chưa tìm thấy bất kỳ trang web nào cho phép truy cập nguồn gốc chéo vào tập lệnh jQuery. Dưới đây là danh sách tôi đã thử nghiệm cho đến nay:Bất kỳ phiên bản được lưu trữ nào của jQuery có tiêu đề 'Access-Control-Allow-Origin: *' được đặt?
- http://www.asp.net/ajaxlibrary/CDN.ashx
- http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery
- http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery
Có bất kỳ phiên bản lưu trữ khác của jQuery mà làm phép truy cập nguồn gốc chéo? Tôi biết rằng jQuery thường được tải thông qua một thẻ script (đôi khi một thẻ script được tạo động), nhưng trong trường hợp cụ thể này, tôi phải sử dụng XmlHttpRequest và Eval để đảm bảo nó được tải vào đúng phạm vi. Google Chrome hỗ trợ tập lệnh người dùng nhưng không hỗ trợ @require, có nghĩa là cách duy nhất để sử dụng jquery in a user script in Google Chrome là nhúng tệp đó vào tệp .user.js hoặc tải và đánh giá nó qua XmlHttpRequest. Nhúng là một giải pháp ít hơn tối ưu và trong khi Tiện ích mở rộng của Chrome cho phép bạn bao gồm các tệp js jQuery trong tiện ích, tôi muốn gắn bó với các tập lệnh người dùng vì chúng đơn giản hơn nhiều và có thể hoạt động không chỉ trên một trình duyệt. Tôi đã gửi vé với cả hai đội Google Ajax APIs và jQuery để cho phép quyền truy cập tên miền chéo vào CDN, nhưng tôi đoán là tôi sẽ chỉ cần lưu trữ vé đó ngay bây giờ.
Tại sao bạn cần phải nhập khẩu jQuery qua XMLHttpRequest? Tại sao không chỉ tạo một thẻ script cho nó? – Pointy
@Pointy Tôi đã cập nhật câu hỏi với nhiều thông tin hơn, nhưng câu chuyện dài là tôi đang cố tạo một kịch bản người dùng bằng jQuery hoạt động trên cả Google Chrome và Firefox. –
Thành thật mà nói, Có một số lần sử dụng lưu trữ của riêng bạn là một kế hoạch trò chơi tốt: có vẻ như đây là một trong số đó. Chỉ cần chắc chắn rằng nó tốt và được lưu trữ, nó không giống như jQuery là một tập tin khổng lồ. –