Chúng tôi muốn sử dụng nội dung của chúng tôi có thể chỉnh sửa, lợi dụng các tuyến đường tạo ra những điều sau đây router.ex:Sử dụng bài jquery ajax để gửi một yêu cầu POST ở Phoenix Khung
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :put_secure_browser_headers
end
pipeline :api do
plug :accepts, ["json"]
end
scope "/", TextEditor do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
resources "/posts", PostController
end
và các chức năng điều khiển, cụ thể là tạo:
def create(conn, %{"post" => post_params}) do
changeset = Post.changeset(%Post{}, post_params)
case Repo.insert(changeset) do
{:ok, _post} ->
conn
|> put_flash(:info, "Post created successfully.")
|> redirect(to: post_path(conn, :index))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
Tuy nhiên chúng tôi không muốn sử dụng các hình thức tạo ra, chúng tôi đang cố gắng để sau đó kiểm tra điều này với divs và jquery phương pháp $ .post:
<div id="newPost" contenteditable="true">write here</div>
<div id="button" class="btn btn-primary">Save</div>
<script type="text/javascript">
$(document).ready(function(){
$("#button").click(function() {
var post = $("#newPost").html();
$.post("/posts/post", { title: post })
.done(function() {
alert("Data Loaded: ");
});
});
});
</script>
Tuy nhiên chúng tôi không nhận được cảnh báo hoặc bất kỳ dữ liệu nào được chèn vào cơ sở dữ liệu của chúng tôi. Chúng ta đang thiếu gì?
EDIT: Trong đường dẫn trình duyệt, chúng tôi đã xóa plugin giả mạo chéo vì lỗi mã thông báo csrf.
Bạn có nhận được bất kỳ lỗi trong giao diện điều khiển của bạn? Bạn có thể vui lòng đăng đường dẫn 'trình duyệt' của mình không? – Gazler
Không có lỗi. Trong giao diện điều khiển chúng ta nhận được: '' '[info] POST/posts/post'''. Tôi đã thêm đường dẫn trình duyệt vào câu hỏi. Chúng tôi đã xóa plugin giả mạo chéo vì lỗi mã thông báo csrf. – mesosteros
Không phải là bạn nên làm điều này như một giải pháp, nhưng bạn có thể kiểm tra xem nó có hoạt động nếu bạn loại bỏ ': put_secure_browser_headers'? – Gazler