在同一个ajax调用中有多个url?这可能吗?

我可以使用ajax调用将数据发送到多个页面吗? 我不想为此使用另一个ajax调用。

示例代码:

$.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); } }); 

您不能对来自许多页面的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); } }); }; 

你需要的只是$ .each和$ .ajax的两个参数forms

 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); } } ); }); 

注意:成功回调生成的消息将相互覆盖,如图所示。 你可能想在success函数中使用$(’#someDiv’)。append()或类似的东西。

单个AJAX请求只能与一个URL通信,但您可以为不同的URL创建多个AJAX请求,并且它们将同时完成工作 – 您无需等待一个完成,然后再触发下一个URL。

(如果您的URL位于同一台服务器上,您可以考虑重构服务器端代码,以便单个URL完成您的多个URL现在所做的所有工作。)

使用’$ .when’也可以替代。 我在我的一个项目中使用过它。

阅读jQuery API指令:

两个ajax请求成功时执行myFunc函数,如果任何一个有错误,则执行myFailure。

 $.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) .then( myFunc, myFailure );