2013-08-07 30 views
8

Tôi có thể gửi dữ liệu của mình tới nhiều trang bằng cách sử dụng cuộc gọi ajax không? Tôi không muốn sử dụng một cuộc gọi ajax khác cho việc này.Nhiều url trong cùng một cuộc gọi ajax? Là điều này có thể?

đang

mẫu:

$.ajax({ 
    type: 'POST', 
    url: '../services/form_data.php', //can I send data to multiple url with same ajax call. 
    data: { 
     answer_service: answer, 
     expertise_service: expertise, 
     email_service: email, 
    }, 
    success: function (data) { 
     $(".error_msg").text(data); 
    } 
}); 
+3

Không, nhưng bạn có thể viết hàm kết thúc tốt đẹp này và lấy url làm tham số. –

+1

Và làm thế nào để bạn có ý định xử lý các kết quả khác nhau từ các URL khác nhau? – CCH

+0

Bạn có thể làm cho form_data.php tự gửi các yêu cầu khác nhau. (hoặc thêm một kịch bản mới ở giữa) – CCH

Trả lời

11

Bạn có thể không sử dụng cùng một mã cho 1 yêu cầu từ nhiều trang.

NHƯNG bạn có thể gửi 2 yêu cầu. nó có thể được thực hiện bằng cách sao chép dán mã ajax của bạn hoặc bằng cách xây dựng một chức năng mà được URL và gửi yêu cầu với URL này

function sendMyAjax(URL_address){ 
    $.ajax({ 
     type: 'POST', 
     url: URL_address, 
     data: { 
      answer_service: answer, 
      expertise_service: expertise, 
      email_service: email, 
     }, 
     success: function (data) { 
      $(".error_msg").text(data); 
     } 
    }); 
}; 
+0

đã cập nhật câu hỏi của tôi ... vui lòng xem ... lời khuyên nào? –

3

Một yêu cầu AJAX đơn chỉ có thể nói chuyện với một URL, nhưng bạn có thể tạo ra nhiều yêu cầu AJAX cho các URL khác nhau, và họ sẽ làm công việc của họ cùng một lúc - bạn sẽ không cần phải chờ cho một để hoàn thành trước khi bắn ra kế tiếp.

(Nếu URL của bạn là trên cùng một máy chủ, bạn có thể xem xét refactoring mã server-side của bạn để một URL duy nhất làm hết mọi việc mà nhiều URL của bạn làm gì bây giờ.)

+0

đã cập nhật câu hỏi của tôi ... vui lòng xem ... mọi lời khuyên? –

7

Tất cả bạn cần là $.each và hình thức hai tham số của $.ajax

var urls = ['/url/one','/url/two', ....]; 

$.each(urls, function(i,u){ 
    $.ajax(u, 
     { type: 'POST', 
     data: { 
      answer_service: answer, 
      expertise_service: expertise, 
      email_service: email, 
     }, 
     success: function (data) { 
      $(".error_msg").text(data); 
     } 
     } 
    ); 
}); 

Lưu ý: Các tin nhắn được tạo bởi cuộc gọi lại thành công sẽ ghi đè lên nhau như được hiển thị. Có thể bạn sẽ muốn sử dụng $ ('# someDiv'). Append() hoặc tương tự trong hàm thành công.

+0

đã cập nhật câu hỏi của tôi ... vui lòng xem ... mọi lời khuyên? –

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