我正在尝试向非我自己的网站(具有网络潜在客户功能的 salesforce.com)提交表单,并且我是通过 JavaScript 模式窗口来完成此操作。
基本上,一旦所有条目都经过测试并确保没有错误,我就会使用这个:
if(error_count == 0) {
$.ajax({
type: "POST",
url: "[salesforce url]",
data: "first_name=" + first_name + "&last_name=" + last_name + "&email=" + email + "&firm=" + firm + "&[salesforceid]=" + AUM + "&[salesforceid]=" + custodian + "&[salesforceid]=" + custodian_other,
error: function() {
$('.error').hide();
$('#sendError').slideDown('slow');
},
success: function () {
$('.error').hide();
$('.success').slideDown('slow');
$('form#callToAction').fadeOut('slow');
}
});
}
如果在不使用 javascript 的情况下测试表单并且 url 有效,那么我在想 javascript 处理 url 的方式可能是问题所在?
问题:数据未成功提交至 Salesforce。同样,常规 HTML 表单可以工作,而 javascript 则不行。所以我将其确定为 JavaScript 问题。
最佳答案
除非接收服务器允许并且浏览器支持 CORS,否则您无法发出 XHR 跨域请求。但是,您可以像这样进行盲目提交,这将假定成功:
var $form = $("<form>", {
method: "POST",
action: "[salesforce url]",
target: "my-iframe"
}).appendTo("body");
var $iframe = $("<iframe>", {
name: "my-iframe"
}).bind( "load", function () {
$('.error').hide();
$('.success').slideDown('slow');
$('form#callToAction').fadeOut('slow');
$iframe.remove();
$form.remove();
}).appendTo("body");
$.each(("first_name=" + first_name + "&last_name=" + last_name + "&email=" + email + "&firm=" + firm + "&[salesforceid]=" + AUM + "&[salesforceid]=" + custodian + "&[salesforceid]=" + custodian_other).split("&")), function (index, value) {
var pair = value.split("=");
$form.append("<input>", {
type: "hidden",
name: pair[0],
value: pair[1]
});
});
$form.submit();
关于javascript - 使用 Javascript URL 发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8420364/