【问题标题】:Ajax call always returning error 500 client sideAjax 调用总是返回错误 500 客户端
【发布时间】:2013-04-12 14:25:20
【问题描述】:

我正在尝试将数据发布回位于 Default.aspx 中的网络方法

jquery 代码:

data = "{'saveData':'testtestest'}"

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/Default.aspx/SavePins",
        data: data,
        dataType: "json",
        success: function (response) {
            if (response.d) {
                //    var obj = JSON.parse(response.d);
            }
        },
        error: function (xhr, ajaxOptions, thrownError) {
            $('#modalContentBox').html('Whoops! There was an error saving!').removeAttr('class').attr('class', 'alert alert-error');
            $('#myModal').modal();
        }
    });

网络方法:

[WebMethod]
public bool SavePins(string saveData)
{
    try
    {
        File.WriteAllText(string.Format("{0}{1}.shane", file_location, "pinsData"), saveData);
        return true;
    }
    catch (Exception)
    {
        return false;
    }
}

问题是 Ajax 调用总是返回错误 500 客户端。它实际上并没有发布到服务器。页面中有一个带有runat="server"<form> 元素。我添加了<asp:ScriptManager EnablePageMethods="True" runat="server"/>

【问题讨论】:

  • 如果你得到了 500 的回报,这意味着请求发送到服务器并且服务器拒绝了它。

标签: javascript jquery asp.net ajax


【解决方案1】:

您需要 ScriptMethod 到您的 Web 方法,因为您需要将响应作为 json 发送。

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]      
public bool SavePins(string saveData)
{
     try
      {
           File.WriteAllText(string.Format("{0}{1}.shane", file_location, "pinsData"),     saveData);
           return true;
      }
     catch (Exception)
     {
        return false;
      }
 }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 2020-10-28
相关资源
最近更新 更多