我正在使用Javascript函数将一条消息发送到多个目的地或号码:
var data = JSON.stringify({
"from": "InfoSMS",
"to": [
"41793026727",
"41793026834"
],
"text": "Test SMS."
});
现在在我的应用程序中,我将"to"作为参数 - arg.receivers,其中数字将被馈送到代码中,作为 41793026727,41793026834
但是,argument-arg.receivers 被识别为单个数字参数,因此它不会发送短信
因此,如果arg.receivers只是一个数字,例如,41793026834它发送SMS,但如果它是像上面那样的多个,它不会发送它。
有没有办法将参数框定为多个数字?
请帮忙
您可以迭代数据(不要字符串化(并逐个发送消息。
var data = {
"from": "InfoSMS",
"to": ["41793026727", "41793026834"],
"text": "Test SMS."
};
data.to.forEach( function(to){
sendMessage( JSON.stringify( Object.assign( {}, {to:to}, data ) ) ); //creating one message each for **to**
});
function sendMessage(data) {
var xhr = new XMLHttpRequest();
xhr.withCredentials = false;
xhr.addEventListener("readystatechange", function() {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "api.infobip.com/sms/1/text/single");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("accept", "application/json");
xhr.send(data);
}
编辑
如果您已经获得一个字符串,请执行
data = JSON.parse( data );
然后继续执行forEach
中的其余逻辑