Đối với tôi, làm việc trong Play và sử dụng jsRoutes này là rất rất đau đớn để tìm ra.
Dường như Play (JavaScript) sẽ làm một Ajax GET mà không vấn đề bằng cách sử dụng cú pháp sau:
$.ajax(jsRoutes.controllers.MyController.ajax(inurlparam))
.done(function(data) {
}).fail(function(data) {
})
Tuy nhiên (và đây là phần khó chịu) ... Nếu bạn muốn làm một POST bạn cần sử dụng phương pháp absolutURL()
trên URL trước tiên để nhận ajax (hoặc bài đăng) không bao gồm [object%20Object]
vào url tại thời điểm đăng bài. Không có số lượng gỡ lỗi url hoặc các tham số biểu mẫu dường như chỉ ra những gì đang xảy ra cũng như lý do tại sao. Tôi chỉ là "đoán" giải pháp này ra khỏi sự thất vọng tuyệt đối. PS: Lưu ý các dấu ngoặc vào cuối absolutURL()
- js mọi người sẽ ngay lập tức nhận được những người có nghĩa là "làm" chức năng không chỉ vượt qua tôi xử lý với nó.
var url = jsRoutes.controllers.MyController.ajaxPost(inurlparam).absoluteURL();
var formData = $('#form').serialize();
$.ajax({
url: url,
type: "POST",
data: formData
}).done(function(data) {
}).fail(function(data) {
})
tôi trả lời ở đây vì đây là nơi mà Google đưa tôi một lần cuối cùng tôi nhận ra nó có thể không được mã hóa của tôi đã gây ra vấn đề :)
whats kiểu nội dung của bạn? dữ liệu của bạn ở đâu. đây có phải là yêu cầu ajax hoàn chỉnh của bạn không? dán mã đầy đủ của '$ .ajax' – naveen
Có thể trùng lặp của [% 5Bobject% 20Object% 5D (404 không tìm thấy) khi cố gắng gửi qua AJAX] (http://stackoverflow.com/questions/10357445/5bobject20object5d-404-not -found-when-attempt-to-submit-via-ajax) –