使用Ajax/Javascript发布到CRM的API

使用Ajax/Javascript发布到CRM的API,javascript,ajax,Javascript,Ajax,我正在尝试将表单数据发送到API,以便集成到CRM中。它需要按照发布说明以有效的JSON格式发送。我有点麻烦,因为我以前从未做过这样的事 首先,我将表单数据收集到一个对象中,然后将其字符串化。所有变量都是从表单中收集的字符串 var allFormValues = { "First": fNameInput, "Last": lNameInput, "Referrer": "guid", "Type": "

我正在尝试将表单数据发送到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);
                }
            });

您是否尝试过不字符串化或序列化数据

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);
    }
});

$.ajax()
代码有语法错误;URL后面缺少引号,数据前面缺少逗号:。除此之外,它应该是一个简单的修复:
var-formData=JSON.stringify(allFormValues)
.serializeArray()
是在表单上调用的;您发送的是一个空数组)第一步的可能重复应该是学习使用浏览器的开发工具。如果您正在使用它们,它会在控制台中显示错误(如果有)。另外,您可以使用它来观察网络,查看XHR请求中发送了什么,以及响应是什么……这是一个组合,并且分配了错误的值。