Salesforce - $.ajax 调用的成功处理程序
Salesforce - success handler for $.ajax call
我有一个表单,我一直在向 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,并且抛出错误中没有内容?
关于将其识别为成功的 POST,以便我可以在回调中触发其他操作的任何建议?我不想完全忽略响应,否则我最终可能会遇到这样一种情况:我正在对失败的 POST 进行操作,就好像它成功了一样。我需要以某种方式捕捉成功。
我突然想到这也可能是跨站点脚本问题,但由于应用程序不在 JSONP 中交换数据,我不确定如何解决这个问题(我不确定如何首先识别它(。
这里有几件事:
1(由salesforce的API发送的重定向响应很可能被解释为错误代码。
2(后续页面(重定向后(的响应代码从声音来看是200 OK。
3( 无法使用 JSONP 执行 POST 请求。这是 JSONP 的限制;它实际上不是 AJAX 请求,而是包装在动态生成的脚本标记中的 HTTP GET 请求。此外,JSONP 仅在请求产生 200 OK 的 HTTP 响应时才有效。
我建议使用您自己的服务器端中介来处理您的 AJAX POST 请求。这将充当您的前端应用程序和 salesforce API 之间的代理。这也将允许你更好地控制发送到应用的响应。
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;
其中 var 响应将包含 ajax 调用的返回值
- JQuery Ajax PHP中的错误和成功处理
- EmberJS:在成功处理请求时解决承诺
- AJAX没有使用成功处理程序函数
- jQuery成功处理程序未在生产服务器上执行,但在dev中运行良好
- 如何等待ajax成功处理程序完成后再执行另一个
- ko.applyBindings的成功处理程序
- 并发 jquery jsonp 响应被发送到错误的成功处理程序
- 自定义 JavaScript 函数中的成功处理
- 每次提交时,Ajax 表单开始和成功处理程序的调用次数会连续增加
- Salesforce - $.ajax 调用的成功处理程序
- 触发器成功处理程序已完成执行,其中包含嵌套的 ajax 请求
- 根据加载文件的内容阻止指定的成功处理程序
- $.ajax成功处理程序don'中的jQuery方法;不起作用
- 如何成功处理jqueryajax请求
- 等待 ajax 返回的正确方法(我不想使用成功处理程序
- $http服务未触发控制器angularjs中的成功处理程序
- Trello API没有调用成功处理程序
- Backbonejs在保存成功处理程序中获取视图
- 如何将数据从php发送到jquery ajax成功处理程序,以防php抛出警告
- jQuery.post()没有触发成功处理程序方法