尝试在我的电子商务商店中实施发送短信功能。
我使用名为esteria.lv的服务,他们为我提供了如下所示的API链接:http://api1.esteria.lv/send?api-key=api_key&sender=example.com&number=11223344&text=message
如果邮件已发送,则输出消息ID,现在输出错误编号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条消息(请求)而不是一条消息。我只需要一个请求和一个发送短信。有人有什么建议吗?
答案 0 :(得分:0)
要回答你的评论,这就是你应该做的。
在您的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请求都将发送到您的服务器,然后负责联系您的短信服务提供商并发送消息。
我认为执行6次的问题取决于其他问题,但是如果不查看其余的代码就很难说(你可以尝试在#btn上调试click事件,看看每次点击都会执行多少次在按钮上。