我可以使用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);
}
});
答案 0 :(得分:15)
您不能对来自多个页面的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);
}
});
};
答案 1 :(得分:11)
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()或类似的东西。
答案 2 :(得分:3)
单个AJAX请求只能与一个URL通信,但您可以为不同的URL创建多个AJAX请求,并且它们将同时完成工作 - 在启动下一个URL之前,您无需等待一个完成
(如果您的网址位于同一台服务器上,您可以考虑重构服务器端代码,以便单个网址完成您的多个网址现在所做的所有工作。)
答案 3 :(得分:0)
使用'$ .when'也可以替代。我在我的一个项目中使用过它。
阅读jQuery API说明:
当两个ajax请求成功时执行函数myFunc,或者 myFailure,如果其中一个有错误。
$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ) .then( myFunc, myFailure );