Отправка данных на сервер при наличии параметров в URL

0

У меня возникли проблемы с отправкой сообщения в WebMethod

Часть находится в ascx, поэтому URL-адрес является родительской страницей, или же существует только 404

У меня код JQ

$("#saveCanvas").click(function () {
        var image = document.getElementById("SolutionDisplay").toDataURL("image/png");
        image = image.replace('data:image/png;base64,', '');

        $.ajax({
            type: 'POST',
            url: "Student.aspx/UploadImage",
            data: '{ "imageData" : "' + image + '" }',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (msg) {
                alert('Image saved successfully !');
            }
        });
});

вызывается из кнопки

<input type="button" id="saveCanvas" name="saveCanvas" value="Save Image" />

но я продолжаю получать 500 ошибок, вроде этого

POST http://localhost:83/Student.aspx/UploadImage 500 (Internal Server Error) jquery-1.10.2.js:8720
    send                                jquery-1.10.2.js:8720
    jQuery.extend.ajax                  jquery-1.10.2.js:8150
    (anonymous function)                Student.aspx?Page=Assignment&&CourseID=14:709
    jQuery.event.dispatch               jquery-1.10.2.js:5109
    elemData.handle                     jquery-1.10.2.js:4780

Может ли это иметь какое-то отношение к GET url?

http://localhost:83/Student.aspx?Page=Assignment&&CourseID=14

код сервера должен быть простым

на классе есть

[ScriptService]

и в классе есть "обработчик",

static string PathTest = @"D:\";
[WebMethod()]
public static void UploadImage(string imageData)
{
    string fileNameWitPath = PathTest + DateTime.Now.ToString().Replace("/", "-").Replace(" ", "- ").Replace(":", "") + ".png";
    using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
    {
        using (BinaryWriter bw = new BinaryWriter(fs))
        {
            byte[] data = Convert.FromBase64String(imageData);
            bw.Write(data);
            bw.Close();
        }
    }
}
  • 0
    что такое image в вашем коде ajax? Что это значит?
  • 0
    нажмите кнопку 2 секунды и добавьте дополнительные функции, и изображение станет холстом. добавил это в код сейчас
Показать ещё 2 комментария
Теги:
webmethod

1 ответ

0
Лучший ответ

Я решил это. проблема заключалась в использовании ajax под usercontroll. переместил методы в родительский aspx, и он работал красиво.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню