Ajax.Ошибка синтаксиса.Неправильный символ - PullRequest
0 голосов
/ 28 марта 2019

У меня есть приложение asp.net mvc. У меня есть представление с именем «Access», контроллер, и я пытаюсь вызвать один из методов контроллеров в AJAX. И я получил ошибку синтаксиса. Метод Test вообще не вызывался

Код метода контроллера:

[HttpGet]
public JsonResult Test(string p)
{            
    return Json(new User() {  Name="Nat"}, JsonRequestBehavior.AllowGet);
}

AJAX Call:

$.ajax({
       type: "GET",
       url: "Access/Test", // the method we are calling
       contentType: "application/json; charset=utf-8",
       data: { "p": "test" },
       dataType: "json",
        success: function (result) {
                alert("yes");
                alert('Yay! It worked!' + result);                
        },
        error: function (request, status, error) {
                alert('Not worked ' + error);
        }

});

Это очень простой код, но я не могу заставить его работать. Я хочу понять, почему мои данные JSON неверны, и я получил ошибку. И я хочу выполнить свой метод

Ответы [ 2 ]

0 голосов
/ 28 марта 2019
  1. AccessContoller.cs

    public class AccessController : Controller
    {
      [HttpGet]
      public JsonResult Test(string p)
      {            
         return Json(new User() {  Name="Nat"}, JsonRequestBehavior.AllowGet);
      }
    }
    
  2. Указатель или вызов любой страницы

    $(document).ready(function(){
       $.ajax({
        type: "GET",
        url: "Access/Test", //First Controller Name(Access) or After Method Name
        contentType: "application/json; charset=utf-8",
        data: { "p": "test" },
        dataType: "json",
        success: function (result) {
            alert("yes");
            alert('Yay! It worked!' + result);                
        },
        error: function (request, status, error) {
            alert('Not worked ' + error);}
       });
    });
    
0 голосов
/ 28 марта 2019

Вы отправляете GET запрос, поэтому удалите data и contentType - они не нужны в GET запросах:

$.ajax({
       type: "GET",
       url: "Access/Test", // the method we are calling
       dataType: "json",
       success: function (result) {
                alert("yes");
                alert('Yay! It worked!' + result);                
        },
        error: function (request, status, error) {
                alert('Not worked ' + error);
        }

});

И удалите p из действия или установите егок нулю:

[HttpGet]
public JsonResult Test(string p = null)
{            
    return Json(new User() {  Name="Nat"}, JsonRequestBehavior.AllowGet);
}
...