【问题标题】:Getting grunt's connect server to accept POST requests on static files让 grunt 的连接服务器接受静态文件的 POST 请求
【发布时间】:2014-07-17 04:59:16
【问题描述】:

我正在尝试使用预配置的 connect middleware framework grunt 来开发我的应用程序的前端,其中静态 JSON 文件代表我稍后将开发的实际 Web 服务。

但是,向我的静态文件发送 POST 请求会导致 404 错误,即使具有相同 URL 和参数的 GET 请求也可以正常工作。

我可以将 grunt/connect 配置为在向该 URL 发出 POST 请求时简单地提供我的静态文件吗?

【问题讨论】:

  • 由于您的问题是几个月前的问题,您是否在此期间提出了解决方案?我目前遇到了完全相同的问题。
  • @swege 不幸的是,没有。我在网上找到了一些潜在的解决方案(没有一个非常简单),但我无法让它们中的任何一个起作用。所以我从来没有将它们作为解决方案发布。我继续开发的临时解决方法是简单地为我的应用程序创建一个调试模式,其中所有 REST 请求都通过 GET 发送。

标签: javascript http post gruntjs connect


【解决方案1】:

如果应用程序使用 Grunt Server,我在源代码中做了一个技巧来调用 GET 方法:

var useGruntServer = window.location.href.indexOf("localhost:9000") >= 0;

self.jsonGet = function (url, dataIn, callback, errorCallBack) {
    $.ajax({
        data: dataIn,
        type: "GET",
        url: url,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            if (callback) callback(result);
        },
        error: function () {
            if (errorCallBack) errorCallBack();
        }
    });
};

self.jsonPost = function (url, dataIn, callback, errorCallBack) {

    //Grunt Server Accepts only GET requests
    if (useGruntServer) {
        self.jsonGet(url, null, callback, errorCallBack);
        return;
    }

    $.ajax({
        data: self.objectToJsonString(dataIn),
        type: "POST",
        url: url,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            if (callback) callback(result);
        },
        error: function () {
            if (errorCallBack) errorCallBack();
        }
    });
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-14
    • 2016-02-02
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    相关资源
    最近更新 更多