2010-04-05 25 views
5

Itunes dựa trên nền tảng Webkit và chúng tôi không thể sử dụng XmlHttpRequest trên trang web trong JavaScript vì chính sách bảo mật. Nhưng, như một ngoại lệ, chúng ta có thể làm điều đó với một tiêu đề đặc biệt. Đây là mã nguồn và tôi đã làm nó thành công trong Safari:Tôi có thể sử dụng XmlHttpRequest trên trang web trong môi trường Itunes LP không?

var url = 'http://mysite.net/canvas.php'; 

var mybody = "<?xml version='1.0' charset='utf-8'?><person><name>Arun</name></person>"; 
var http = new XMLHttpRequest(); 

http.open("POST", url, true); 
http.setRequestHeader("X-PINGOTHER", "pingpong"); 
http.setRequestHeader('Content-Type', 'application/xml'); 

http.setRequestHeader("Content-length", mybody.length); 
http.setRequestHeader("Connection", "close"); 
http.send(mybody); 

tôi đã gửi dữ liệu xml để máy chủ của tôi và nhận được trả về phản hồi thành công trong trình duyệt Safari, nhưng tôi không thể làm điều đó trong môi trường iTunes LP. Vậy vấn đề là gì?

+0

Đã xem xét Chia sẻ nguồn gốc chéo (CORS) xem [http://vi.wikipedia.org/wiki/Cross-Origin_Resource_Sharing] && MDC reference [https: //developer.mozilla .org/En/HTTP_access_control] – Ajaxe

Trả lời

0

Tôi không biết môi trường iTunes LP là gì nhưng thông thường, nếu bạn cần làm kịch bản lệnh chéo trang web, bạn sẽ sử dụng JSONP. Nhìn kìa. Tôi chắc rằng bạn có thể tìm thấy vô số ví dụ.

0

JSONP là tùy chọn tốt, nhưng để thực hiện điều đó, bạn cần tạo dịch vụ để cung cấp tính năng của JSONP. Nhưng, bạn không thể là chủ sở hữu cho điều đó.

Bạn có thể đi với proxy để gửi XmlHttpRequest mà bạn có thể sử dụng Flash làm proxy. Bạn có thể tìm thấy ví dụ tốt hơn here

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