You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Phoenix框架中:options回调函数定义位置咨询

解决Phoenix框架中OPTIONS路由回调函数的定义问题
  • 回调函数的定义位置::options回调函数需要与:some_handler一样,定义在对应的SomeController控制器文件中(路径一般为lib/your_app_web/controllers/some_controller.ex)。

  • 具体实现示例:
    在控制器中添加options/2函数,处理预检请求的响应头即可:

    defmodule YourAppWeb.SomeController do
      use YourAppWeb, :controller
    
      def some_handler(conn, params) do
        # 你的POST请求处理逻辑
      end
    
      def options(conn, _params) do
        # 根据你的CORS需求设置响应头
        conn
        |> put_resp_header("access-control-allow-origin", "*")
        |> put_resp_header("access-control-allow-methods", "POST, OPTIONS")
        |> put_resp_header("access-control-allow-headers", "Content-Type, Authorization")
        |> send_resp(:no_content, "")
      end
    end
    
  • 更高效的替代方案:
    手动给每个路由加OPTIONS规则比较繁琐,推荐使用Phoenix生态中的cors_plug插件。只需要在项目中添加依赖并配置全局或路由级别CORS规则,就能自动处理所有预检请求,无需手动编写每个OPTIONS回调。

内容的提问来源于stack exchange,提问作者IlikedCPlusPlus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:05:15