ajax возвращает ошибку аутентификации для объекта json в веб-формах asp.net - PullRequest
0 голосов
/ 05 сентября 2018

это функция getData, которая получает данные из запроса и считыватель данных добавляет их в строку, а затем возвращает строку в ajax:

 public static string GetData(string Word)
{

    string response = "<p>No customer selected</p>";
    string connect = "Data Source=SAFI-PC\\SQLEXPRESS;Initial Catalog=work1;Integrated Security=True";
    string sql = "SELECT word_Id  ,word  ,meaning    ,syn1   ,syn2,syn3 ,syn4 FROM trial WHERE word = N'"+Word+"'";
        //" SELECT  tbl_dic.WordID, tbl_dic.Word, tbl_dic.meaning, tbl_dic.syn1, tbl_dic.syn2, tbl_dic.syn3, tbl_dic.syn4, tbl_Trans.Definition, tbl_Trans.Translation FROM tbl_dic INNER JOIN tbl_Trans ON tbl_dic.WordID = tbl_Trans.WordID  where Word=N'" + Word + "'";

    StringBuilder sb = new StringBuilder();

    using (SqlConnection conn = new SqlConnection(connect))
    {
        using (SqlCommand cmd = new SqlCommand(sql, conn))
        {
            cmd.Parameters.AddWithValue("Word", Word);
            conn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            if (rdr.HasRows)
            {
                while (rdr.Read())
                {
                    sb.Append("<p>");
                    sb.Append("<strong>" + rdr["meaning"].ToString() + "</strong><br />");
                    sb.Append(rdr["syn1"].ToString() + "<br />");
                    sb.Append(rdr["syn2"].ToString() + "<br />");
                    sb.Append(rdr["syn3"].ToString() + "<br />");
                    sb.Append(rdr["syn4"].ToString() + "<br />");

                    sb.Append("</p>");
                    response = sb.ToString();
                    conn.Close();

                    return response;
                }
           }
            return "<p style='background-color:black;'>sdadasdasda</p>";
        }
    }
}

теперь код ajax / jquery:

   $(document).ready(function () {
    $("#askme").keyup(function () {
        $("#ora").empty();

        $.ajax({

            type: "POST",
            url: "solution1.aspx/GetData",
            data: "{'Word' : '" + $("#askme").val() + "'}",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (res) {
                var json1 = JSON.stringify(res);
                alert("sucess");
                console.log(json1);
                $("#ora").html(json1);
 },

            error: function (xhr, textStatus, err) {
               alert("readyState: " + xhr.readyState);
               alert("responseText: " + xhr.responseText);
               alert("status: " + xhr.status);
               alert("text status: " + textStatus);
               alert("error: " + err);
            }

    });


});

    });

в случае успеха и при ведении журнала консоли res возвращается следующее:

 {"Message":"Authentication failed.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"}

Может быть, возможно, визуальная студия сломана и нуждается в ремонте, потому что я не вижу проблем в коде, зная, что запрос работает, и я уже попробовал 3 разных способа завершить задачу, и каждый раз, когда я получаю тот же объект примечание: у меня есть другой проект, написанный на asp.net mvc, и ajax работает отлично Пожалуйста, помогите !!!!

1 Ответ

0 голосов
/ 06 сентября 2018

Попробуйте это

console.log(res.d);

Попробуйте добавить res как HTML

$("#ora").html($.parseHTML(res.d));

Весь успех Функция как

 success: function (res) {
                var json1 = $.parseHTML(res.d);
                alert("sucess");
                console.log(res.d));//server method returns the string as You gave So dont stringify the res
                $("#ora").html(json1);
 },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...