Vấn đế của bạn được gọi là cross-domain Ajax. Đối tượng XMLHttpRequest2 theo đặc tả của W3C sẽ hỗ trợ các phương thức AJAX gọi đến những máy chủ không cùng nguồn gốc. XMLHttpRequest2 có thêm một thuộc tính withCredentials để kiểm soát cơ chế này. Một ví dụ mẫu được viết như sau cho việc gửi GET thông qua AJAX từ webpage của bạn đến zing.vn :
PHP Code:
function createCORSRequest(method, url){ var xhr = new XMLHttpRequest(); if("withCredentials" in xhr){ xhr.open(method, url, true); } else if (typeof XDomainRequest != "undefined"){ xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } return xhr; } var request =createCORSRequest("get","http://mp3.zing.vn"); if (request){ request.onload = function(){ //do something with request.responseText }; request.send(); }
- Chưa rõ các trình duyệt sẽ hỗ trợ XMLHttpRequest2 ra sao nên tạm thời cứ dùng proxy cho chắc.
- AJAX với dữ liệu có dạng JSON thì không cần quan tâm đến chính sách same origin.
Èo, mọi chuyện đâu có đơn giản thế Bạn phải tham khảo kỹ mấy trang kia. Rồi google thêm về các từ khóa cross-domain ajax, Cross-Origin resource sharing...
Như tớ đã bổ sung cho reply trước, tốt nhất là dựng 1 cái proxy mà load các dữ liệu nguồn ngoài về xử lý.
Chưa hiểu lắm về cái proxy của bác, ý bác là dùng PHP get data rùi truyền qua javascript ý hả.
Dù sao cái này cũng là hỏi cho biết thôi, chứ ko cần thiết lắm
The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services. With YQL, apps run faster with fewer lines of code and a smaller network footprint.
Yahoo! and other websites across the Internet make much of their structured data available to developers, primarily through Web services. To access and query these services, developers traditionally endure the pain of locating the right URLs and documentation to access and query each Web service.
With YQL, developers can access and shape data across the Internet through one simple language, eliminating the need to learn how to call different APIs.
function createCORSRequest(method, url){
var xhr = new XMLHttpRequest();
if("withCredentials" in xhr){
xhr.open(method, url, true);
}
else if (typeof XDomainRequest != "undefined"){
xhr = new XDomainRequest();
xhr.open(method, url);
}
else {
xhr = null;
}
return xhr;
}
var request =createCORSRequest("get","http://mp3.zing.vn");
if (request){
request.onload = function(){
//do something with request.responseText
};
request.send();
}
http://www.w3.org/TR/XMLHttpRequest2...ials-attribute
http://arunranga.com/examples/access-control/
Bổ sung một chút :
- Chưa rõ các trình duyệt sẽ hỗ trợ XMLHttpRequest2 ra sao nên tạm thời cứ dùng proxy cho chắc.
- AJAX với dữ liệu có dạng JSON thì không cần quan tâm đến chính sách same origin.
...
ẹc, test qua rùi, vẫn ko được
Như tớ đã bổ sung cho reply trước, tốt nhất là dựng 1 cái proxy mà load các dữ liệu nguồn ngoài về xử lý.
Dù sao cái này cũng là hỏi cho biết thôi, chứ ko cần thiết lắm
The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services. With YQL, apps run faster with fewer lines of code and a smaller network footprint.
Yahoo! and other websites across the Internet make much of their structured data available to developers, primarily through Web services. To access and query these services, developers traditionally endure the pain of locating the right URLs and documentation to access and query each Web service.
With YQL, developers can access and shape data across the Internet through one simple language, eliminating the need to learn how to call different APIs.