Требуется AJAX-запрос для одного домена

Попытка реализовать функцию отправки смс в моем интернет-магазине.

Я пользуюсь сервисом esteria.lv, и мне предоставили ссылку API, которая выглядит следующим образом: http://api1.esteria.lv/send?api-key=api_key&sender=example.com&number=11223344&text=message

Если сообщение отправлено, то выводится идентификатор сообщения, теперь выводится ошибка № 3(невозможно подтвердить подлинность).

Чтобы заставить его работать с моим интернет-магазином, я нашел этот ресурс: http://www.ajax-cross-origin.com/examples/cross-origin.htm и сделал этот код:

$(function() {

$( '#btn' ).click(function(){
  $.ajax({
    crossOrigin: true,
    url: 'http://api1.esteria.lv/send?api-key=api_key&sender=example.com&number=11223344&text=message',
    success: function(data) {
      $( '#test' ).html(data);
    }
 });
 }); 
}); 

Это работает, но проблема в том, что он отправляет 6 сообщений (запросов) вместо одного. Мне нужен только 1 запрос и один отправленный смс. У кого-нибудь есть предложения?

1 ответ

Чтобы ответить на ваш комментарий, это то, что вы должны сделать.

В вашем javascript у вас должен быть вызов ajax на ваш сервер

// collect sms data
$.ajax({
  url: 'yourserver/handlesms',
  method: 'post',
  data: {
     sender: 'email@mail.com',
     number: '1234567',
     message: 'Test message'
  }
}).then(function (data) {
  alert("Message sent!");
});

На вашем сервере у вас должен быть обработчик для отправки смс, что-то вроде (я не знаю, какая у вас платформа, я просто напишу очень простой пример php)

$data = $_POST;
$apiKey = '12345643223213ds';

$endpoint = 'http://api1.esteria.lv/send';

// Create new curl request
$ch = curl_init($endpoint);
// curl settings, add your data, api key etc...
$result = curl_exec($ch);

// Result will contain the response from your api call
// Then you can send a result back to your client (js)
echo json_encode(['status' => 'Message sent!']);

Это всего лишь пример, код сервера зависит от вашей платформы.

В этом случае у вас нет какого-либо перекрестного запроса (все запросы js будут отправлены на ваш сервер, который отвечает за связь с вашим провайдером sms и отправку сообщений.

Проблема, которая выполняется 6 раз, я думаю, зависит от чего-то другого, но трудно сказать, не глядя на остальную часть кода (вы можете попробовать отладить событие click на #btn и посмотреть, сколько раз выполняется каждый раз, когда вы нажимаете кнопку,

Другие вопросы по тегам