C# Ajax成功功能赢得';不执行

C# Ajax成功功能赢得';不执行,c#,jquery,ajax,cordova,http,C#,Jquery,Ajax,Cordova,Http,我有一个apachecordova项目,我试图将表单数据从客户端发布到数据库。我可以看到我发送到API的json,然后API将数据发送到DAL,然后发送到数据库。该条目正确地更新了表,然后根据前一个条目是否存在返回1或-1。然后将该值发送到客户端。我可以看到返回的确切响应,但我的ajax成功函数不会启动 阿贾克斯: 控制器: [System.Web.Http.HttpPost] public JObject RegisterUser(JObject obj) {

我有一个apachecordova项目,我试图将表单数据从客户端发布到数据库。我可以看到我发送到API的json,然后API将数据发送到DAL,然后发送到数据库。该条目正确地更新了表,然后根据前一个条目是否存在返回1或-1。然后将该值发送到客户端。我可以看到返回的确切响应,但我的ajax成功函数不会启动

阿贾克斯:

控制器:

    [System.Web.Http.HttpPost]
    public JObject RegisterUser(JObject obj)
    {
        RegisterUsers user = new RegisterUsers();
        user = JsonConvert.DeserializeObject<RegisterUsers>(((JProperty)obj.First).Name);
        var temp = DataAccessLayer.RegisterUser(user.Username, user.Password, user.Firstname, user.Lastname, user.Email, null, null);
        JObject jobj = new JObject();
        jobj.Add("output", temp.ToString());

        return jobj;
    }
答复:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/10.0
Access-Control-Allow-Origin: *
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?RDpcRGV2ZWxvcG1lbnRcVGV4dDJQaG9uaWNzXFJlc3RBUElcYXBpXFVzZXJcUmVnaXN0ZXJVc2Vy?=
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,POST,OPTIONS
Access-Control-Allow-Headers: Content-Type, soapaction
Date: Wed, 08 Feb 2017 19:52:43 GMT
Content-Length: 15

{"output":"-1"}
My error函数是触发的函数,以下是输出:

console.log:

{"readyState":0,"status":0,"statusText":"NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'http://localhost:57207/api/User/RegisterUser'."}
更新:

我能够将async设置为true,我的新错误消息如下:

{"readyState":0,"status":0,"statusText":"error"}

尝试返回
IHttpActionResult
IActionResult
Ok()
作为200响应

public IActionResult RegisterUser(JObject obj)
{
    RegisterUsers user = new RegisterUsers();
    user = JsonConvert.DeserializeObject<RegisterUsers>(((JProperty)obj.First).Name);
    var temp = DataAccessLayer.RegisterUser(user.Username, user.Password, user.Firstname, user.Lastname, user.Email, null, null);
    JObject jobj = new JObject();
    jobj.Add("output", temp.ToString());

    return Ok(jobj);
}
public IActionResult注册器(作业对象对象)
{
RegisterUsers user=新的RegisterUsers();
user=JsonConvert.DeserializeObject(((JProperty)obj.First).Name);
var temp=DataAccessLayer.RegisterUser(user.Username、user.Password、user.Firstname、user.Lastname、user.Email、null、null);
JObject jobj=新的JObject();
jobj.Add(“输出”,temp.ToString());
返回Ok(jobj);
}

如果仍然失败,请尝试返回一个简单的字符串,如
returnok(“helloworld!”)。如果使用简单字符串成功,则对象的序列化可能失败或显示为无效JSON。

尝试返回
IHttpActionResult
IActionResult
Ok()
,以获得200响应

public IActionResult RegisterUser(JObject obj)
{
    RegisterUsers user = new RegisterUsers();
    user = JsonConvert.DeserializeObject<RegisterUsers>(((JProperty)obj.First).Name);
    var temp = DataAccessLayer.RegisterUser(user.Username, user.Password, user.Firstname, user.Lastname, user.Email, null, null);
    JObject jobj = new JObject();
    jobj.Add("output", temp.ToString());

    return Ok(jobj);
}
public IActionResult注册器(作业对象对象)
{
RegisterUsers user=新的RegisterUsers();
user=JsonConvert.DeserializeObject(((JProperty)obj.First).Name);
var temp=DataAccessLayer.RegisterUser(user.Username、user.Password、user.Firstname、user.Lastname、user.Email、null、null);
JObject jobj=新的JObject();
jobj.Add(“输出”,temp.ToString());
返回Ok(jobj);
}

如果仍然失败,请尝试返回一个简单的字符串,如
returnok(“helloworld!”)。如果使用简单字符串成功,则对象的序列化可能会失败或显示为无效的JSON。

尝试将
$.ajax
的数据类型设置为“application/JSON”@AlexanderStaroselsky,这并没有什么区别。我仍然点击了错误函数。尝试将
$.ajax
的数据类型设置为“application/json”@AlexanderStaroselsky,这并没有什么区别。我仍然点击了错误函数。我尝试返回IHttpActionResult,但失败了。返回简单字符串也失败。我仍然有与以前相同的错误:{“readyState”:0,“status”:0,“statusText”:“NetworkError:未能在“XMLHttpRequest”上执行“send”:加载失败。}我尝试返回IHttpActionResult,但失败。返回简单字符串也失败。我仍然有与以前相同的错误:{“readyState”:0,“status”:0,“statusText”:“NetworkError:未能在“XMLHttpRequest”上执行“send”:未能加载。“”
public IActionResult RegisterUser(JObject obj)
{
    RegisterUsers user = new RegisterUsers();
    user = JsonConvert.DeserializeObject<RegisterUsers>(((JProperty)obj.First).Name);
    var temp = DataAccessLayer.RegisterUser(user.Username, user.Password, user.Firstname, user.Lastname, user.Email, null, null);
    JObject jobj = new JObject();
    jobj.Add("output", temp.ToString());

    return Ok(jobj);
}