Публикация в API CRM с помощью Ajax / Javascript - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь отправить данные формы в 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);
                }
            });

1 Ответ

0 голосов
/ 22 октября 2019

Вы пытались не преобразовывать или не сериализовать данные?

var allFormValues = {
   "First": fNameInput,
   "Last": lNameInput,
   "Referrer": "guid",
   "Type": "guid",
   "Primary": phoneAreaInput + phonePrefInput + phoneLineInput,
   "Email": emailNameInput,
   "Details": "question" + answer 
};

$.ajax({
    type: 'POST',
    url: 'theapiurl',
    beforeSend: function(request) {
        request.setRequestHeader('Content-Type', 'application/json');
        request.setRequestHeader('Accept', 'application/json');
    }
    data: allFormValues,
    success: function(data) {
        console.log(data);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...