Javascript 为什么我的ajax调用只在第一次工作?但是下一个电话的工作

Javascript 为什么我的ajax调用只在第一次工作?但是下一个电话的工作,javascript,c#,jquery,ajax,asp.net-mvc,Javascript,C#,Jquery,Ajax,Asp.net Mvc,这是我的web API方法: [HttpPost] public ActionResult InsertCompany(Company value) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Author

这是我的web API方法:

[HttpPost]
    public ActionResult InsertCompany(Company value)
    {
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri(string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~")));
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = client.PostAsJsonAsync($"{WebConfigurationManager.AppSettings["URL"]}/Company/InsertCompany", value).Result;
            if (response.IsSuccessStatusCode)
            {
                return Json(new { success = true, responseText = "Data berhasil ditambahkan!" }, JsonRequestBehavior.AllowGet);
            }
        }

        return Json(new { success = false, responseText = "Data gagal ditambahkan!" }, JsonRequestBehavior.AllowGet);
    }
这是我的ajax调用:

function PostData() {
$.ajax
({
    url: 'InsertCompany',
    type: 'POST',
    dataType: 'json',
    data: {
        CompanyName: $('#CompanyName').val(),
        JoinDate: GetDateTimeNow()
    },
    success: function (response) {
        if (response !== null && response.success) {
            location.reload();
            alert(response.responseText);
        }
        else {
            alert(response.responseText);
        }
    },
    error: function (response) {
        alert('error: ' + response.responseText);  // 
    }
});
}
以下是我对ajax的称呼:

$('#btnSubmit').click(function () {
PostData();
});
这是GetDateTimeNow()方法:

这是我的html元素:

<button type="submit" class="btn btn-primary" id="btnSubmit">Submit</button>
<input type="text" class="form-control" id="CompanyName" placeholder="Enter Company Name">
提交
这是我第一次调用ajax的响应:

错误:未定义

这是ajax调用的第二个响应,依此类推:

function PostData() {
$.ajax
({
    url: 'InsertCompany',
    type: 'POST',
    dataType: 'json',
    data: {
        CompanyName: $('#CompanyName').val(),
        JoinDate: GetDateTimeNow()
    },
    success: function (response) {
        if (response !== null && response.success) {
            location.reload();
            alert(response.responseText);
        }
        else {
            alert(response.responseText);
        }
    },
    error: function (response) {
        alert('error: ' + response.responseText);  // 
    }
});
}
数据来自于哈西尔·迪坦巴坎

我的问题是,为什么我的ajax调用在加载页面后第一次调用时没有成功?但是第二次成功等等,你知道会发生什么吗?

需要两个变化:-

1.使用
e.preventDefault():-

$('#btnSubmit').click(function (e) {
   e.preventDefault();PostData();
});
2.检查公司名称是否不为空,然后仅执行ajax调用:-

function PostData() {
   if($.trim($('#CompanyName').val()) != ''){
   //put your complete ajax call code inside it
   }
}
注:-

当您在未检查公司名称是否有价值的情况下点击submit时会出现问题?一个空数据通过ajax调用传递,您得到了未定义的数据


preventDefault()
仅用于在您单击按钮时停止表单的正常发布(页面刷新)。

您是如何进行ajax调用的(哪种代码调用ajax)?这段代码是需要的,如果它也有一些html,那么html代码也是需要的needed@AlivetoDie我使用jquery在button click事件中执行此操作,第一个调用没有返回200,因此它会出错,但在第二个调用上,等等,它返回200。。我不明白,请在这里更新html+调用代码(在你的问题中),然后可能只有一些人可以help@AlivetoDie我已经用html+调用代码更新了我的问题,你知道会发生什么吗?html仍然没有满,因为我不知道你是如何得到这个:-
CompanyName:$('#CompanyName').val(),
还有什么是
GetDateTimeNow()
谢谢,伙计,它能工作了!但我还是不明白。。我从来没有在没有值的情况下离开CompanyName,我总是给CompanyName赋值,因为在我点击submit按钮之前,我先键入company name,然后点击submit按钮..可能您不使用
e.preventDefault()so按钮单击事件未触发或发生正常页面刷新。