10/10/2018, 10:35

Làm sao gửi XMLHTTPREQUEST sao remote server

client.open("GET","http://mp3.zing.vn",true);
Vầy nó ko hoạt động thì sao mí bác, có cách nào (chỉnh trong trình duyệt (chrome,firefox) để nó có thể chấp nhận remote server ko
sacroyant viết 12:35 ngày 10/10/2018
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(methodurl){
    var 
xhr = new XMLHttpRequest();
    if(
"withCredentials" in xhr){
        
xhr.open(methodurltrue);
    } 
     else if (
typeof XDomainRequest != "undefined"){
        
xhr = new XDomainRequest();
        
xhr.open(methodurl);
    } 
    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();

Tham khảo thêm tại đây :

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.
snoob_clo4 viết 12:36 ngày 10/10/2018
Thanks bác nhiều nhiều
...
ẹc, test qua rùi, vẫn ko được
sacroyant viết 12:46 ngày 10/10/2018
È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ý.
snoob_clo4 viết 12:47 ngày 10/10/2018
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
kenphan19 viết 12:45 ngày 10/10/2018
try ... http://developer.yahoo.com/yql/
kiem_bo viết 12:45 ngày 10/10/2018
to sacroyant dựng proxy cho wwebsite bằng cách nào vậy
snoob_clo4 viết 12:40 ngày 10/10/2018
Được gửi bởi kenphan19
try ... http://developer.yahoo.com/yql/
Hic, nói gì đến việc dùng javascript framework
kenphan19 viết 12:49 ngày 10/10/2018
Muốn cross-domain thì tìm hiểu.
What is YQL?

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.
Bài liên quan
0