2013-09-25 45 views
7

Tôi đang thử một cuộc gọi ajax cơ bản. Vì vậy, tôi đang lưu trữ php thử nghiệm sau trên máy chủ thử nghiệm: http://voicebunny.comeze.com/index.php?numberOfWords=10 Trang web này là thử nghiệm của riêng tôi đã tích hợp với VoiceBunny API http://voicebunny.com/developers.Cuộc gọi đơn giản của jQuery Ajax

Bây giờ tôi cần lấy dữ liệu được in bởi trang web đó trong một số trang web khác bằng jQuery. Như bạn có thể thấy trang web của một số JSON một số. Làm thế nào tôi có thể nhận được JSON này từ một trang web khác?

Đây là mã tôi có:

$.ajax({ 

     'url' : 'http://voicebunny.comeze.com/index.php', 
     'type' : 'GET', 
     'data' : { 
      'numberOfWords' : 10 
     }, 
     'success' : function(data) {    
      alert('Data: '+data); 
     }, 
     'error' : function(request,error) 
     { 
      alert("Request: "+JSON.stringify(request)); 
     } 
    }); 

Tôi đã thử nhiều biến thể khác nhưng tôi luôn nhận được một lỗi và không bao giờ JSON. Cảm ơn bạn

+0

Lỗi bạn đang gặp phải là gì? –

+0

Trừ khi bạn lưu trữ trang web và jquery trên cùng một trang web, đây là cuộc gọi tên miền chéo. Trang web của bạn cần phải cho phép rõ ràng các cuộc gọi tên miền chéo và bạn cũng cần phải kích hoạt nó trong cuộc gọi AJAX (thêm 'crossDomain:" true "'). –

+0

Hey biến lỗi chỉ in "lỗi" – Alejandro

Trả lời

16

hãy đặt dataType thuộc tính cấu hình trong ajax của bạn, hãy thử dùng thử khác!

điểm khác là bạn đang sử dụng thuộc tính cấu hình thiết lập cuộc gọi ajax như chuỗi và nó là sai như reference site

$.ajax({ 

    url : 'http://voicebunny.comeze.com/index.php', 
    type : 'GET', 
    data : { 
     'numberOfWords' : 10 
    }, 
    dataType:'json', 
    success : function(data) {    
     alert('Data: '+data); 
    }, 
    error : function(request,error) 
    { 
     alert("Request: "+JSON.stringify(request)); 
    } 
}); 

Tôi hy vọng là hữu ích!

+0

bạn có thể giải thích các biến '(yêu cầu, lỗi)' là gì không. Sao bạn không làm gì với 'lỗi'? –

11

Bạn cũng có thể thực hiện cuộc gọi ajax chung chung hơn, có thể tái sử dụng, vì vậy bạn có thể gọi nó từ các công việc CRUD (tạo, đọc, cập nhật, xóa) ví dụ và xử lý các trường hợp thành công từ các cuộc gọi đó.

makePostCall = function (url, data) { // here the data and url are not hardcoded anymore 
    var json_data = JSON.stringify(data); 

    return $.ajax({ 
     type: "POST", 
     url: url, 
     data: json_data, 
     dataType: "json", 
     contentType: "application/json;charset=utf-8" 
    }); 
} 

// and here a call example 
makePostCall("index.php?action=READUSERS", {'city' : 'Tokio'}) 
    .success(function(data){ 
       // treat the READUSERS data returned 
    }) 
    .fail(function(sender, message, details){ 
      alert("Sorry, something went wrong!"); 
    }); 
+0

điều này là sạch hơn – Umair

+2

bạn có nghĩa là sạch hơn – weaveoftheride

+1

Nếu chúng tôi đang đề xuất cải tiến tiếng Anh cũng như AJAX, O.P. có nghĩa là echos. Không có chữ cái hoặc quyền sở hữu có liên quan, có nghĩa là không có dấu nháy đơn. Nếu tôi làm việc thực sự chăm chỉ, tôi có thể mang lại những người theo dõi trở lại chủ đề. Tôi nghi ngờ một quản trị viên sẽ nhìn thấy nó theo cách đó mặc dù. –

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