【问题标题】:asp.net api service.svc query length problemsasp.net api service.svc 查询长度问题
【发布时间】:2015-05-20 11:25:25
【问题描述】:

您好,我有一个用于发送 html 邮件的服务,它将从方法“SendMail(data) 大约 1500 个字符”中调用。

我通过带有 AJAX 调用和 JSON 的 JQuery 访问服务:

       var data = encodeURIComponent(JSON.stringify(dataArray));

                    $.ajax({
                        type: "GET",
                        url: "http://localhost:53334/Service.svc/SendMail?data=" + data,
                        contentType: 'application/json; charset=utf-8',
                        dataType: "json",
                        success: function () {
                            alert("Reklamationen er blevet sendt!");
                        },
                        error: function (err) {
                            alert("Kunne ikke sende reklamation! Der opstod en fejl.");
                        }
                    });

我有很多字段,如果我填写所有内容,它会给出 404 not found 响应,但是如果我将一些随机字段留空,它会进入 API 并执行它应该执行的方法?所以我认为它与数据大小有关。我在 webconfig 中尝试了许多设置,但我还没有设法找到解决方案。

希望有人能帮助我。

【问题讨论】:

  • 您将type 放在ajax 调用上作为GET,那不应该是POST,因为您没有检索任何似乎是数据。
  • 嗯,我总是使用 get,因为我记得那时我无法使用该服务发布帖子。但也许我应该尝试做一个帖子。 :)

标签: c# jquery asp.net api svc


【解决方案1】:

您确实应该按照 Tikkes 的指示使用 POST。从语义上讲,您没有从服务器请求资源,因此 GET 没有意义。此外,如 here 所述,对于 Urls 强制执行最大长度,这是 GET 用来传递参数的内容(您也可以在代码中看到)。另一方面,POST 使用请求正文来发送其数据。此外,正如here POST 和 GET 大小通常可以在服务器上配置的,但 POST 通常要大得多(2KB 对 10MB 默认值),如答案之一所述。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多