Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    SMS Aruba problema con Ajax

    Salve a tutti,
    sto seguendo il sito dell'azienda per la quale lavoro e avremmo la necessità di implementare un sistema di notifiche SMS verso i nostri clienti.

    Aruba mi dice che per poter mandare sms devo inviare una richiesta (get o post è indifferente) ad un loro link con i vari parametri di invio ed io ho scritto una funzione che faccia questo ma quando provo a farla girare mi restituisce il seguente errore in console:
    codice:
    XMLHttpRequest cannot load http://admin.sms.aruba.it/sms/send.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
    questo test come vedrete l'ho fatto in locale ma se carico il codice online mi da lo stesso problema.
    La chiamata ajax che mi da l'errore è questa:
    codice:
    $.ajax({
    		url: "http://admin.sms.aruba.it/sms/send.php",
    		type: "POST",
    		data: formdata,
    		processData: false,
    		contentType: false,
    		
    		//in caso di successo:
    		success: function(data){
    			alert(data);
    		}
    	});
    Come risolvo?

    Grazie a tutti in anticipo!
    Vincenzo

  2. #2
    Quote Originariamente inviata da VincenzoB92 Visualizza il messaggio
    Salve a tutti,
    sto seguendo il sito dell'azienda per la quale lavoro e avremmo la necessità di implementare un sistema di notifiche SMS verso i nostri clienti.

    Aruba mi dice che per poter mandare sms devo inviare una richiesta (get o post è indifferente) ad un loro link con i vari parametri di invio ed io ho scritto una funzione che faccia questo ma quando provo a farla girare mi restituisce il seguente errore in console:
    codice:
    XMLHttpRequest cannot load http://admin.sms.aruba.it/sms/send.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
    questo test come vedrete l'ho fatto in locale ma se carico il codice online mi da lo stesso problema.
    La chiamata ajax che mi da l'errore è questa:
    codice:
    $.ajax({
            url: "http://admin.sms.aruba.it/sms/send.php",
            type: "POST",
            data: formdata,
            processData: false,
            contentType: false,
            
            //in caso di successo:
            success: function(data){
                alert(data);
            }
        });
    Come risolvo?

    Grazie a tutti in anticipo!
    Vincenzo
    Non puoi usare Ajax fare chiamate a domini esterni, incappi nella same-origin-policy.
    La chiamata, se vuoi un responso, va fatta con un linguaggio lato-server.
    Se ti interessa ho una implementazione con PHP proprio per gli SMS di Aruba.

  3. #3
    Ciao Luca mi interessa eccome! In realtà il mio obiettivo era proprio farlo con PHP ma non avevo idea di come aprire delle url lato server e leggerne la risposta, come devo fare? Grazie!

  4. #4
    Ti posto il mio metodo, l'ho commentato:
    Codice PHP:
    <?php
    $text_to_send
    ="Corpo dell'SMS...";
    $phone_number='+393330000000';//+39PrefissoNumero del destinatario
    $sender='Mario Rossi Srl';//Aruba non garantisce che sarà utilizzato, potrebbe essere sostituito da un numero di telefono "random"
    $url='http://admin.sms.aruba.it/sms/batch.php';
    $data=array(
     
    'user'=>'Sms00000''pass'=>'a0a0a0a0',//i tuoi user e password per inviare SMS 
     
    'rcpt'=>$phone_number'data'=>substr($text_to_send,0,160), 
     
    'sender'=>$sender'qty'=>'h' 
    );
    $options = array(
      
    'http' => array(
        
    'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        
    'method'  => 'POST',
        
    'content' => http_build_query($data),
      ),
    );
    $context=stream_context_create($options);
    $result=file_get_contents($urlfalse$context);//$result conterrà il responso
    ?>
    Forse sarebbe il caso di spostare il thread in PHP?

  5. #5
    Grazie mille Luca ho giusto un paio di domande da farti:
    1. La pagina alla quale mandi la richiesta è batch.php però nelle faq di aruba leggo che la richiesta va mandata a send.php (i parametri sono gli stessi), la devo modificare?

    2. Sempre nelle faq di aruba leggo che il paramertro "sender" va compilato con un numero di telefono ma tuttavia sarebbe meglio per noi mettere il nome dell'azienda: mi confermi che mettendo una stringa al posto di un numero funziona lo stesso?

    Grazie mille per lo script mi tornera molto utile!
    ps. Non appena mi rimetto al pc sposto tutto in php

  6. #6
    Quote Originariamente inviata da VincenzoB92 Visualizza il messaggio
    Grazie mille Luca ho giusto un paio di domande da farti:
    1. La pagina alla quale mandi la richiesta è batch.php però nelle faq di aruba leggo che la richiesta va mandata a send.php (i parametri sono gli stessi), la devo modificare?

    2. Sempre nelle faq di aruba leggo che il paramertro "sender" va compilato con un numero di telefono ma tuttavia sarebbe meglio per noi mettere il nome dell'azienda: mi confermi che mettendo una stringa al posto di un numero funziona lo stesso?

    Grazie mille per lo script mi tornera molto utile!
    ps. Non appena mi rimetto al pc sposto tutto in php
    Prego, non c'è di che

    Aruba offre diversi tipi di servizi riguardo gli SMS quindi sì, devi impostare l'url relativo al tuo servizio.
    Riguardo il parametro "sender", attieniti alle FAQ relative al servizio che hai acquistato.
    Per spostare il thread ci vuole un moderatore credo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.