2015-06-22 3 views
0

Я довольно новичок в сообщении Ajax, и мне интересно, может ли кто-нибудь помочь мне в том, почему я продолжаю получать сообщение об ошибке.Ajax Post в mvc возвращает ошибку все время

VideoController

[HttpPost] 
    public ActionResult Check(string userid, string streamid) 
    { 
     return Json(new { success = true }); 
    } 

Причина HttpPost довольно пусто пока только, чтобы проверить, работает ли он, прежде чем я начать писать код.

Jquery

var userID = '@User.Identity.GetUserId()'; 
var defaultContext = window.location.hash === "" ? XSockets.Utils.guid() : window.location.hash.substr(1); 
    //alert(defaultContext); 

    $.ajax({ 
     url: '/video/check', 
     type: 'POST', 
     dataType: 'json', 
     data: JSON.stringify({ 
      userid: userID, 
      streamid: defaultContext 
     }), 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 
      alert(data.success); 
     }, 
     error: function (error) { 
      alert(error.status); 
     } 
    }); 

Я получаю бросок в мою error: function и если я отладки я никогда не ударил [httpPost] Method

Может кто-то помочь

Update

я получаю 404 в предупреждение.

RouteConfig

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 
+0

замените вашу функцию ошибки следующим образом: ошибка: функция (ошибка) { alert (error.status); } – Ala

+0

Для дополнительной информации вы можете проверить сетевой инспектор вашего браузера. –

+0

Какие ошибки вы получаете в консоли браузера? –

ответ

0

Сервер:

[HttpPost] 
public JsonResult Foo(string userid, string streamid) 
{ 
    return new JsonResult{ Data = new {success = true}}; 
} 

Клиент:

$.post('/home/foo',{userid:'123', streamid:'bar'}, function(r) { 
    console.log(r); 
}); 

EDIT - Если вы предпочитаете путь $.ajax вместо $. post:

$.ajax({ 
    url: '/home/foo', 
    type: 'POST', 
    dataType: 'json', 
    data: JSON.stringify({ 
     userid: '123', 
     streamid: 'bar' 
    }), 
    contentType: 'application/json; charset=utf-8', 
    success: function (data) { 
     alert(data.success); 
    }, 
    error: function() { 
     alert("error"); 
    } 
}); 

Запутанное то, что вы смешиваете XSockets.NET с AJAX ... Если у вас есть XSockets там, почему передать что-нибудь через HTTP с помощью AJAX? Вы также можете легко передать его в XSockets и вызвать свой сервисный уровень. Просто дружественный указатель.

1

Старайтесь не хардкора в URL:

var tURL = '@Url.Action("Check", "Video")'; 
$.ajax({ 
     url: tURL , 
     type: 'POST', 
     dataType: 'json', 
     data: JSON.stringify({ 
      userid: userID, 
      streamid: defaultContext 
     }), 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 
      alert(data.success); 
     }, 
     error: function() { 
      alert("error"); 
     } 
    }); 
Смежные вопросы