当前位置: 首页 > 面试题库 >

POST请求在beego框架上被视为OPTIONS

庄实
2023-03-14
问题内容

我正在使用beego框架作为我的API框架和客户端上的AngularJS。我已正确设置所有CORS设置。我可以做GET请求。但是,当我尝试POST时,beego对待是OPTIONS请求。它还会发出警告:multiple response.WriteHeader calls。有什么可能错吗?

我的beego CORS设置:

func init() {
    orm.RegisterDataBase("default", "mysql", "root:@tcp(127.0.0.1:3306)/fakeapi")
    beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
        AllowOrigins:     []string{"*"},
        AllowMethods:     []string{"GET", "DELETE", "PUT", "PATCH", "POST"},
        AllowHeaders:     []string{"Origin"},
        ExposeHeaders:    []string{"Content-Length"},
        AllowCredentials: true,
    }))

}

我的ANgularJS请求

var transaction = $http.post(BASE_URL + "transaction", transactionData);
                return $q.all([transaction]).then(function(response) {
            console.log(response);
        });

我的系统:Ubuntu 14.04 beego:1.4.2 bee:1.2.4 angularJS:1.3.12


问题答案:

这可能是因为当前有待合并到主服务器的问题/拉动请求:问题912

没有这一行,一切都很好::
router.go#L861

这似乎与提交3bb4d6f一致,该提交显示:

// Write status code if it has been set manually
// Set it to 0 afterwards to prevent "multiple response.WriteHeader calls"

(并router.go设置状态,因此出现错误信息)

提交f962457应该可以解决此问题,但尚未合并。

另一个问题904提到了一些有关无法检索先前在会话引擎中注册的会话数据的问题。也许Session.on标志可以提供帮助。



 类似资料:
  • 我尝试在vue中使用axios post实现注销功能。我将jwt添加到请求头中,但它被视为参数。在另一个函数中,我实现了axios post方法,它可以正常工作。有人能帮忙吗?代码如下: 当我看到网络时,在方法的中有字段,它成功了。但是在方法的中没有字段,在参数中可以找到,它看起来像: 响应表示状态代码为400的错误。

  • 我想我会在这里问这个问题,因为我不太确定我会错在哪里。我正在尝试使用Django Rest框架类通过AJAX执行POST请求。但是,每当事件触发时,我都会收到以下错误: 这是堆栈跟踪中显示的内容: 上下文 我试图做到这一点,当用户单击“添加到列表”按钮时,它会向用户定义的列表发送一个cafeName(以及最终的其他详细信息)。 我想知道是否有人可以看看我的代码,并给我一些指导,我哪里出了问题? 代

  • 问题内容: 我在端口5000的node.js服务器上设置了CORS,如下所示: 我现在正尝试像这样在从硬盘打开的静态网页中使用JQuery发送AJAX POST请求: 该函数从不调用,并且我得到的唯一警报是来自XHR 处理程序的警报,其中包含以下错误: 我认为CORS配置合理, 我缺少什么? 编辑 :对于我而言,我能找到的最佳解决方案是从服务器发送页面: 问题答案: 这是我正在使用的代码。它位于我

  • 当我向azure功能发送请求时,我收到以下异常: 内部异常系统。系统上已处理NullReferenceException。运行时。例外服务。例外DispatchInfo。投掷:在AlidaDutilities。OnUnzipHttpTriggered d__0。MoveNext(AlidaDutilities,版本=1.0.0.0,区域性=neutral,PublicKeyToken=NullAl

  • 问题内容: 我有ajax请求执行3个任务: 保存模型(数据库) 发电子邮件 提供成功或失败的消息。 因为此任务需要太多时间。用户可以等待长达20秒的响应(成功或失败的消息)。并且,如果用户关闭浏览器,则它停止在该用户当前处理的操作之一中。 这是糟糕的用户体验。 我希望用户将其数据提交给我的控制器,然后他将收到“成功或失败的消息”。并且该过程将完全在服务器端,并且它应该支持多个会话。 我怎样才能做到

  • beego 的整体设计架构如下所示: beego 是基于八大独立的模块构建的,是一个高度解耦的框架。当初设计 beego 的时候就是考虑功能模块化,用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块,例如:你可以使用 cache 模块来做你的缓存逻辑;使用日志模块来记录你的操作信息;使用 config 模块来解析你各种格式的文件。所以 beego 不仅可以用于 HTTP 类