Javascript Salesforce-美元.ajax调用的成功处理程序
我有一个表单,我一直在使用标准表单提交操作提交给Salesforce。默认情况下,您可以告诉Salesforce在文章完成后将您重定向到给定的URL 我不再希望被重定向,因为我在表单页面上有其他活动。没问题,我的页面已经在使用jQuery,因此我可以像这样使用方便的$.ajax实用程序:Javascript Salesforce-美元.ajax调用的成功处理程序,javascript,jquery,salesforce,Javascript,Jquery,Salesforce,我有一个表单,我一直在使用标准表单提交操作提交给Salesforce。默认情况下,您可以告诉Salesforce在文章完成后将您重定向到给定的URL 我不再希望被重定向,因为我在表单页面上有其他活动。没问题,我的页面已经在使用jQuery,因此我可以像这样使用方便的$.ajax实用程序: $('#wrapper').on('click', '#formsubmit', function(e) { e.preventDefault(); var formData = $('#su
$('#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会返回我良好的ol'重定向,这将算作“成功”,我可以放弃/忽略它。真是误入歧途
- 我可以看到一个200 OK的结果(通常意味着“成功”),但成功回调没有被触发
- 潜在客户将添加到Salesforce数据库中
- 检查返回内容显示为零;响应中没有内容
- 错误回调被触发(尽管200 OK),但可能是由于故意不重定向,它被视为“资源不可用”?(因此我的状态代码是0,thrownError中没有内容?)
我建议您使用自己的服务器端中介来处理AJAX POST请求。这将充当前端应用程序和salesforce API之间的代理。这还可以让您更好地控制发送到应用程序的响应。谢谢,C.Hill。我从未想过将服务器端用作ITERMEDIALY。。。我必须承认,到目前为止,我还没有实现这一点;我将尝试颠倒事件顺序,看看是否可以先执行其他活动(尽管我认为我会遇到相同的跨站点问题;主要的附加活动是一个固定的联系人订阅;他们的API可能也不会返回CORS头);尽管如此,很明显这是一个很好的方法,所以我现在就开始接受答案,这样我就不会忘记。这是一个空字符串,我也可以通过查看控制台来确认。通过谷歌搜索可以得出以下结论:基于此,除了flash,salesforce目前很可能不支持跨来源共享。我建议使用服务器端页面为您发出请求,直到salesforce api返回正确的CORS头。感谢您的研究,Kevin。我想你和C.希尔有点心中有数。一旦返回了正确的标题,你就可以使用上面的帖子了。
var formData = $('#subForm').serialize();
var response = $.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
}
}).responseText;