Javascript 为什么我的ajax调用只在第一次工作?但是下一个电话的工作
这是我的web API方法: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
[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按钮单击事件未触发或发生正常页面刷新。