我有一个通过标准表单提交操作提交给 Salesforce 的表单。默认情况下,您可以告诉 Salesforce 在 POST 完成后将您重定向到给定的 URL。
我不再希望被重定向,因为我在表单页面上有其他活动。没问题,我的页面已经在使用 jQuery,所以我可以使用方便的 $.ajax 实用程序,如下所示:
$('#wrapper').on('click', '#formsubmit', function(e) {
e.preventDefault();
var formData = $('#subForm').serialize();
$.ajax({
type: "POST",
url: "https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8",
data: formData,
success: function() {
console.log('success!'); // or not!
},
error:function (xhr, ajaxOptions, thrownError){
console.log(xhr.status); // 0
console.log(thrownError); // empty
}
});
});
在我误入歧途的大脑中,我想象 Salesforce 会返回我的良好重定向,这将算作我可以丢弃/忽略的“成功”。确实误入歧途!
- 我可以看到 200 OK 结果(通常意味着“成功”),但成功回调没有被触发。
- 潜在客户添加到 Salesforce 数据库
- 检查返回的内容显示为零;响应中没有内容。
- 错误回调被触发(尽管 200 OK)但可能是由于故意不重定向它被视为“资源不可用”?(所以我的状态码是0,throwError里面没有内容?)。
关于将其识别为成功的 POST 以便我可以在回调中触发其他操作的任何建议?我不想完全忽略响应,否则我最终可能会遇到这样的情况,即我正在处理失败的 POST,就好像它成功了一样。我需要以某种方式捕捉成功。
我想到这也可能是一个跨站点脚本问题,但由于应用程序不交换 JSONP 中的数据,我不确定如何解决这个问题(我不确定如何识别它首先)。