我有一个 Web API Controller ,由我的页面的 ajax 查询调用。当 async 值设置为 true 时,一切正常。当设置为 false 时,ajax 查询不会触发。请参阅下面我的代码
C# Web api Controller
using System;
using Microsoft.Xrm.Sdk;
using CRM_WebApp.Models;
using System.Web.Http;
using System.Web.Http.Cors;
using Microsoft.Xrm.Sdk.Query;
using CRM_WebApp.Services;
using System.Text.RegularExpressions;
namespace CRM_WebApp.Controllers
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class CallBackFormController : ApiController
{
[System.Web.Http.HttpPost]
public System.Web.Http.IHttpActionResult Post([System.Web.Http.FromBody] CallBackFormModel CallBackFormModel)
{
ConnectiontoCrm connectiontoCrm = new ConnectiontoCrm();
connectiontoCrm.GetConnectiontoCrmCopy();
//Create Lead
Entity lead = new Entity("lead");
lead["firstname"] = CallBackFormModel.FirstName;
return Json(new { result = "ok" });
}
}
}
下面是我的ajax查询
<script>
$("input[name='crm']").click(function(){
var Data = {FirstName : $("input[name='user_name']").val()};
makeAjaxCall(Data);
});
function makeAjaxCall(Data){
$.ajax({
url: "http://localhost:54360///api/CallBackForm",
type: "POST",
dataType: "json",
async: false,
contentType: 'application/json',
data: JSON.stringify(Data),
success: function(data){
alert("DONESUCCESS");
},
error: function(data){
alert("DONEERROR");
}
});
}
</script>
我不知道如何更改我的代码来获取错误
最佳答案
Async:false 不是一个好的做法。设置 async:false 意味着您正在使进程同步,因此浏览器将挂起它直到完成 - 它无法继续执行其他方法。删除该选项将使调用异步(默认情况下,应该如此)。
如果您仍然想使用 async:false 那么请阅读链接-
关于javascript - 在 ajax 查询中将 async 属性设置为 false 时,不会调用 Web Api Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49643841/