使用Ajax/Javascript发布到CRM的API
我正在尝试将表单数据发送到API,以便集成到CRM中。它需要按照发布说明以有效的JSON格式发送。我有点麻烦,因为我以前从未做过这样的事 首先,我将表单数据收集到一个对象中,然后将其字符串化。所有变量都是从表单中收集的字符串使用Ajax/Javascript发布到CRM的API,javascript,ajax,Javascript,Ajax,我正在尝试将表单数据发送到API,以便集成到CRM中。它需要按照发布说明以有效的JSON格式发送。我有点麻烦,因为我以前从未做过这样的事 首先,我将表单数据收集到一个对象中,然后将其字符串化。所有变量都是从表单中收集的字符串 var allFormValues = { "First": fNameInput, "Last": lNameInput, "Referrer": "guid", "Type": "
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请求中发送了什么,以及响应是什么……这是一个组合,并且分配了错误的值。