Я пытаюсь отправить данные формы в API для интеграции в CRM. Он должен быть отправлен в правильном формате JSON, в соответствии с инструкциями для публикации. У меня возникли некоторые проблемы, так как я никогда не делал ничего подобного раньше.
Сначала я собираю данные формы в объект, а затем преобразую его в строку. Все переменные являются строками, собранными из формы.
var allFormValues =
{
"First": fNameInput,
"Last": lNameInput,
"Referrer": "guid",
"Type": "guid",
"Primary": phoneAreaInput + phonePrefInput + phoneLineInput,
"Email": emailNameInput,
"Details": "question" + answer
}
var formData = JSON.stringify($(allFormValues).serializeArray());
Затем я настроил AJAX-запрос для отправки его в API
$.ajax({
type: 'POST',
url: 'theapiurl,
beforeSend: function(request) {
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
}
data: formData,
success: function(data) {
console.log(data);
}
});
Но он не работает. Кто-нибудь может дать какие-либо указания здесь? Заранее спасибо.
РЕДАКТИРОВАТЬ: я не могу получить данные формы напрямую, так как Squarespace называет их ввод вводит странные имена. Я понял это, хотя - оказывается, моя конструкция JSON была отключена. Он назначал объекты значениям, поэтому мне пришлось использовать метод toString () при назначении значений, например, так:
var allFormValues =
{
"First": fNameInput.toString(),
"Last": lNameInput.toString(),
"Referrer": "redacted",
"Type": "redacted",
"Primary": phoneAreaInput.toString() + phonePrefInput.toString() + phoneLineInput.toString(),
"Email": emailNameInput.toString(),
"Details": details.toString()
}
, а затем отправить его с
$.ajax({
type: 'POST',
url: 'redacted',
data: allFormValues,
beforeSend: function(request) {
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
},
success: function(data) {
console.log(data);
},
error: function(data){
console.log(data);
}
});