如何从JavaScript内部for循环发送请求

如何从JavaScript内部for循环发送请求,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,我想通过javascript请求发送批量短信。我试着像下面的代码,但它只发送到第一个电话号码只。我想把它发送到数组中列出的数字 <script type="text/javascript"> function message_api() { var phone_nubmers=['0000000','****','2222','4744']; for (var i = 0; i < phone_nubmers.length; i++) {

我想通过javascript请求发送批量短信。我试着像下面的代码,但它只发送到第一个电话号码只。我想把它发送到数组中列出的数字

<script type="text/javascript">
function message_api() 
{
    var phone_nubmers=['0000000','****','2222','4744'];
    for (var i = 0; i < phone_nubmers.length; i++) 
    {
        api(phone_nubmers[i]);
    }
}
function api(numbers) 
{
    var message="test message from ";
    var url='http://123.123.123.123:8080/sendsms/bulksms?username=*****-****&password=*********&type=0&dlr=1&destination='+numbers+'&source=******&message='+message;
    $.ajax({
        url:url,  
        success: function(data) {
            return data; 
        }
    });
}

函数消息_api()
{
变量phone_numers=['0000000'、'***'、'2222'、'4744'];
对于(变量i=0;i


我试过这样做。

循环中的
return
语句将明确停止执行,这就是它只工作一次的原因

你需要另一个函数来传递结果,这样循环才能继续,下面这样的函数就行了

function takeResp(resp){
  console.log(resp)
}

function api(numbers) 
{
    var message="test message from ";
    var url='http://123.123.123.123:8080/sendsms/bulksms?username=*****-****&password=*********&type=0&dlr=1&destination='+numbers+'&source=******&message='+message;
    $.ajax({
        url:url,  
        success: takeResp(data)
    });
}
这就是为什么:

return xmlHttp.responseText;

您还应该阅读同步和异步请求。

检查更新的可能重复项保持不变,与成功函数中的
return
不同的是,只需将回调外部化我尝试过这样做,它表明我输入的号码没有发送任何消息没有发送请求这是一堆几乎难以辨认的完全未格式化的代码(查看答案预览,使用工具栏进行格式化,然后阅读帮助)这完全没有任何类似于解释你改变了什么或为什么会有帮助的东西。正如@Quentin所说的,你能补充解释一下你做了什么以及为什么它解决了问题吗?还要记住始终格式化代码。
function message_api() {
    var phone_nubmers = ['0000000','****','2222','4744'];
    var message="test message from ";

    phone_nubmers.forEach(function(entry) {
        var url='http://123.123.123.123:8080/sendsms/bulksms?username=*****-****&password=*********&type=0&dlr=1&destination='+entry+'&source=******&message='+message;

        $.ajax({
            url:url,  
            success: function(data) {
                return data; 
            }
        });
    });
}