为什么使用 Phoenix 或 jQuery Mobile 自动重定向

Why automatically redirected with Phoenix or jQuery Mobile

版本 Phoenix:1.3 Elixir:1.6

我不确定是由于 Phoenix 还是 jQuery Mobile。 问题是,在我将数据插入数据库后,似乎自动重定向到下一页。不过,那只是我所做的代码,而不是所有代码。

def index(conn, %{"param" => param}) do
    render(conn, "index.html") #[1]
end

def create(conn, _params) do
    Obj.create_param(_params) #[2]
    conn
     |> redirect(to: page_path(conn, :result))  #[3]
end

def result(conn, %{"param" => param}) do
    render(conn, "result.html") #[4]
end

[1] 显示索引页。

[2] 将数据插入数据库。

[3] 重定向结果页面。

[4] 显示结果页面。

问题出在[4]之后,一旦显示result.html,很快就会重定向到index.html。 我想知道为什么?我不知道是由于 jQuery 还是 Phoenix 框架?

是否有重定向的原因?我想知道管道是由于它吗? 应该在result.html页停止。

[debug] Processing with MyWeb.PageController.result/2
  Parameters: %{"param_id" => "xxxxxx"}
  Pipelines: [:browser]
[info] Sent 200 in 197ms

除了 &result/2 捕获 param 并将其丢弃外,我没有发现该代码有任何问题,这不会导致此问题。

这是 jQuery 手机的问题。数据-ajax导致移动页面。

<%= form_for @conn, page_path(@conn, :create), [method: :post, id: "commitFrm"],  fn f -> %>

↓↓↓↓↓

<%= form_for @conn, page_path(@conn, :create), [method: :post, id: "commitFrm", "data-ajax": "false"],  fn f -> %>