2013-08-07 166 views
8

我可以使用ajax調用將數據發送到多個頁面嗎? 我不想爲此使用另一個Ajax調用。在同一個Ajax調用中有多個url?這可能嗎?

示例代碼:

$.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

不,但您可以編寫一個函數來封裝它並將url作爲參數。 –

+1

你打算如何處理來自不同網址的不同結果? – CCH

+0

你可以讓form_data.php發送不同的請求。 (或在其間添加新腳本) – CCH

回答

11

您不能使用來自多個頁面的1個請求的相同代碼。

但是你可以發送2個請求。它可以通過複製來完成粘貼Ajax代碼或通過構建得到URL的功能以及與此URL

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

更新了我的問題...請看看......任何建議? –

3

單個AJAX請求只能跟一個網址,但你可以創建不同的URL的多個AJAX請求,他們將同時做好自己的工作 - 你不會需要在發射下一個之前等待一個完成。

(如果您的網址是在同一臺服務器上,你可以考慮重構你的服務器端代碼,這樣一個URL沒有所有的多個URL現在做的工作。)

+0

更新了我的問題...請看看......任何建議? –

7

所有你需要的是$.each$.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); 
     } 
     } 
    ); 
}); 

兩個參數形式發送請求注意:成功回調生成的消息將如圖所示相互覆蓋。你可能會想在成功函數中使用$('#someDiv')。append()或類似的函數。

+0

更新了我的問題...請看看......任何建議? –

相關問題