我正在尝试为内联订阅小部件创建跨域GET请求(您在文本框中键入您的电子邮件地址,它会订阅您的邮件列表,而不会将您重定向到其他页面)。除了以json的形式发回信息之外,下面代码中的URL应该发送电子邮件(该信息将告诉您呼叫是否成功,输入的电子邮件是否格式正确,电子邮件已经在清单等)。下面的代码在执行时生成一封电子邮件(恭喜,您在列表中),但我无法收到回复的信息(因此我无法告诉用户以正确的格式输入他们的电子邮件,他们的电子邮件已经在清单等)。我不确定该怎么做 - 为了使其工作,除了调用中的数据(email,list_number和key)之外,我无法传递任何内容。根据我的测试,使用jsonp dataType将“回调”函数连接到url - 在我的情况下,添加它会破坏所有内容。
任何帮助将不胜感激。
$("subscribe-form").submit(function(e) {
var email = $("input-EMAIL").val();
e.preventDefault();
$.ajax({
type: "GET",
crossDomain: true,
jsonp: false,
url: "https://inserturlhere/maillistsubscriber/listSubscribe",
data: { email: email, list_number: '#######', key: '#encoded#'},
success:function(){
alert("An Error Occurred. Try Again :( ");
},
error: function () {
$('div.invitation').html("<br><p>Thank you for submitting! Check your inbox every Friday for the newsletter!</p>")
.hide()
.fadeIn(750);
}
});
return false;
});
答案 0 :(得分:1)
如果这是通过不同的域,简单的ajax将无效。
你可以尝试
jQuery.ajax({
url: BotMind.messagingUrl+"send",
crossDomain: true,
dataType: "jsonp",
type: "GET",
complete: function(){
//alert('complete message');
},
success: function(data, textStatus, jqXHR){
$('div.invitation').html("<br><p>Thank you for submitting! Check your inbox every Friday for the newsletter!</p>")
.hide()
.fadeIn(750);
},
error: function () {
alert("An Error Occurred. Try Again :( ");
},
statusCode: {
404: function() {
//alert("page not found");
},
200: function() {
//alert("page ok");
}
}
});
这肯定有用