我有一个API集成,其中SMS服务要求我们以内容类型为json的格式发送数据。
{
"from": "91887654681",
"to": ["918757077777"],
"body": "Hi this is my message using Mblox SMS REST API"
}
我有一个带有输入文本的表单,即from,to和body。
这是我的表单提交的方式。
$("#sendSMSForm").submit(function(event){
event.preventDefault();
// Serialize the form data.
var form = $('#sendSMSForm');
var formData = $(form).serialize();
//alert(formData);
$.ajax({
type: 'POST',
dataType: 'json',
contentType: "application/json",
url: $(form).attr('action'),
data: formData
}).done(function(response) {
// Do some UI action stuff
alert(response);
});
});
我不确定...应该使用什么来传递类似的格式....其中“to”是一个数组。
答案 0 :(得分:3)
只需输入您的输入字段select{ display: none }
数组
to
答案 1 :(得分:0)
为什么不使用jQuery Form插件? http://malsup.com/jquery/form/#getting-started
您可以改为使用$ .ajaxSubmit。
答案 2 :(得分:0)
@WEBjuju的评论非常有用....为什么要在客户端进行这样的集成...这真的是一个新手和不好的做法。最后我在服务器端管理这个...使用PHP创建这样的json。以下是可以帮助某人的示例。这是一个使用cURL进行HTTP REST调用的PHP函数。
function callAPI($to, $body)
{
try{
// I am creating an array of Whatever structure I need to pass to API
$post_data = array('from' => ''.$this->from.'',
'to' => array(''.$to.''),
'body' => ''.$body.'');
//Set the Authorization header here... most APIs ask for this
$curl = curl_init();
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer XXXXXXXXXXXXXXXXXXXXX'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
//If you have basic authorization, next 3 lines are required
$username ="venturecar15";
$password = "voaKmtWv";
curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
//Not receommended but worked for me
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, $this->ApiURL);
curl_setopt($curl, CURLOPT_POST, true);
//This is how we can convert an array to json
$test = json_encode($post_data);
curl_setopt($curl, CURLOPT_POSTFIELDS, $test);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
} catch(Exception $e) {
return "Exception: ".$e->getCode()." ".$e->getMessage();
}
if($result === FALSE) {
$error = curl_error($curl)." ".curl_errno($curl);
return "Error executing curl : ".$error;
}
curl_close($curl);
return "SMS sent successfully to ".$to.".";
}