2012-06-22 25 views
5

mã jQuery:chức năng thành công ajax đang in [đối tượng] thay vì văn bản thuần túy. Tại sao?

function ajaxsubmit(){ 
$.ajax({ 
    url: "/update", 
    type: "POST", 
    dataType: "html" 
}).success(function(data) { 
     $('#result').html(data); 
    }); 
} 

và chức năng Java của tôi:

public static Result ajaxupdate() { 
    String done = "very good"; 
    return ok("very good").as("text/plain"); 
} 

cảnh báo được đưa ra [object Object], thay vì văn bản đơn giản "very good". tại sao?

+0

Mở nó bằng chrome, đặt điểm ngắt trên đường cảnh báo và di chuột qua 'dữ liệu' nó sẽ cho bạn biết chính xác đối tượng trông như thế nào trong nội bộ. – asawyer

+0

im đoán jquery đang chuyển đổi json của bạn thành một đối tượng theo nghĩa đen. – hvgotcodes

+0

bạn đã thử cảnh báo (data.d); – Rab

Trả lời

2

thêm datatype: "text" và thay đổi đầy đủ() với thành công()

function ajaxsubmit(){ 
    $.ajax({ 
     url: "/update", 
     type: "POST", 
     dataType: "html" 
    }).success(function(data) { 
      $('#result').html(data); 
     }); 
    } 
+0

Cảm ơn Cristi, tôi nhận được nó ngay bây giờ.! tuyệt quá! – doniyor

+0

Cristi, giờ tôi đang thêm phần tử html làm dữ liệu phản hồi. làm thế nào tôi có thể làm cho nó để mỗi chức năng ajaxsubmit nối thêm một phần tử html. bây giờ nó chỉ phụ thêm một lần vì id của phần tử div trở thành duy nhất. xem chỉnh sửa của tôi ở trên xin vui lòng. – doniyor

+1

thử .append() http://api.jquery.com/append/ –

4

bạn muốn sử dụng:

alert(JSON.stringify(data)); 

vì vậy bạn JavaScript sẽ trông giống như:

function ajaxsubmit(){ 
$.ajax({ 
    url: "/update", 
    type: "POST", 
}).complete(function(data) { 
     alert(JSON.stringify(data)); 
    }); 
} 

mã Java của bạn trông giống như nó được gói chuỗi của bạn thành một đối tượng trước khi nó sẽ gửi nó trở lại client, JSON.stringify() sẽ cho bạn thấy cấu trúc của đối tượng đang được trả về và từ đó bạn có thể tìm ra thuộc tính của đối tượng trả về chứa biến trả về của bạn (Có thể là dữ liệu như data.data hoặc data.return)

+0

wow. mát mẻ. cảm ơn người đàn ông, nó đang làm việc mặc dù. – doniyor

+0

doniyor: Không có vấn đề người đàn ông :) – Waltzy

2

Các tài liệu jQuery câu trả lời rõ ràng câu hỏi của bạn. Từ http://api.jquery.com/jQuery.ajax/

complete(jqXHR, textStatus) 
<...> 
two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a string 

Bạn có thể tìm hiểu thêm về jqXHR trong tài liệu. Nếu bạn muốn sử dụng chuỗi phản hồi, hãy cân nhắc chọn phương thức .success. Bạn có thể phải cung cấp rõ ràng .contentType

+2

contentType là cho những gì bạn gửi đến máy chủ, dataType là cho những gì bạn nhận được. –

+0

okay, cảm ơn nhiều người bạn, thông tin tuyệt vời, đã học được một điều nữa! – doniyor

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