函数不能处理长输入参数

本文关键字:输入 参数 处理 不能 函数 | 更新日期: 2023-09-27 18:05:03

下面的函数工作时,输入字符串(#txtarea)包含几个字符,但不工作时,它包含长字符串,如何得到它的工作?

下面是我的代码:
 $('#insertcmt').click(function () {
        $.getJSON('http://localhost:55679/RESTService.svc/InsertComment?callback=?', { commenttext: $('#txtarea').val() }, function (data) {
        });
        loadcomments();
    });
服务器端逻辑:
    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    public void InsertComment(string commenttext)
    {
        string sql = "INSERT statement";
        Database db = Utilities.GetDataBase();
        DbCommand cmd = db.GetSqlStringCommand(sql);
        db.ExecuteNonQuery(cmd);
    }

是因为我试图从跨域访问吗?

函数不能处理长输入参数

长URL(超过2000个字符)可能不适用于所有浏览器。

使用POST方法:

$('#insertcmt').click(function () {
  $.post('http://localhost:55679/RESTService.svc/InsertComment?callback=', 
    { commenttext: $('#txtarea').val() }, 
    function (data) {
    });
  loadcomments();
});
编辑:

你必须将[WebGet]属性更改为:

[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]

这可能是由RFC GET请求中的限制引起的。看一下这个问题。

既然你在服务器端逻辑中使用插入语句,你可能应该使用POST请求。

 $('#insertcmt').click(function () {
    $.post('http://localhost:55679/RESTService.svc/InsertComment?callback=?', { commenttext: $('#txtarea').val() }, function (data) {
    });
    loadcomments();
});

尝试通过POST而不是GET发送内容,理论上没有通用限制。