抱歉我的英语不好,我是阿贾克斯的新手。
我尝试创建一个Ajax,当点击按钮描述时将电子邮件推送到MailChimp列表,但我发现我的Ajax中的url是错误的。
详情如下:
我的控制器:
public class MailChimpController : UmbracoApiController
{
private static readonly MailChimpManager Manager = new MailChimpManager();
[HttpPost]
public async Task<Member> CreateOrUpdateMember(string listID, string emailAddress)
{
var member = new Member
{
EmailAddress = emailAddress,
Status = Status.Pending,
EmailType = "html",
TimestampSignup = DateTime.UtcNow.ToString("s")
};
var result = await Manager.Members.AddOrUpdateAsync(listID, member);
return result;
}
}
我的Html:
<input type="text" class="email-input">
<button type="button" class="button-subscribe">Subscribe</button>
最后一个:我的Ajax:
$(document).ready(function () {
var pattern = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|asia|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
$("button").click(function(){
var _emailAddress = $("input.email-input").val();
if (_emailAddress == "" || !pattern.test(_emailAddress)) {
message = "Email is invalid";
alert(message)
return false;
}
if (pattern.test(_emailAddress))
{
$.ajax({
type: "POST",
url: "@Url.Action("CreateOrUpdateMember","MailChimp")",
data: {
listID: "4f8083915d",
emailAddress: _emailAddress
},
encode : true,
success: function () {
alert("You have successfully subscribed, please check your email to confirm !");
},
error: function () {
alert("Something wrong, you have not subscribed yet. Please do again !");
}
});
}
});
});
我的期望:在input
中输入的电子邮件将添加到我的MailChimp列表中。
但是这件事:
我没有将我的电子邮件发送到mailchimp
列表,我将其推送到我的本地,因此该电子邮件未包含在我的Mailchimp列表中。
任何人都可以帮助我解决这个问题,我应该如何更改ajax中的url
以使其正常工作?
谢谢你们。 的Phong。
答案 0 :(得分:0)
最可能的原因是你在字符串的两边和内部都加了双引号,将你的网址更改为:
url: '@Url.Action("CreateOrUpdateMember", "MailChimp")'
OR
Asp.Net
更新:
如果url
没有为您创建正确的$.ajax
({
type: "POST",
url: "/MailChimp/CreateOrUpdateMember/",
dataType: 'json',
data: {
listID: "4f8083915d",
emailAddress: _emailAddress
}
});
,请尝试以下操作:
{{1}}