如何在for循环中从JavaScript发送请求

时间:2018-02-14 09:02:23

标签: 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++) 
    {
        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; 
        }
    });
}

我试过这样。

3 个答案:

答案 0 :(得分:2)

循环中的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)
    });
}

答案 1 :(得分:0)

这就是原因:

return xmlHttp.responseText;

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

答案 2 :(得分:-3)

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