2016-12-06 3 views
1

Я делаю заявку на сервер с формой HTML. Когда я нажимаю кнопку отправки для формы, я получаю 404 страницу, не существует ошибки. Однако, если я перейду к URL-адресу, просто набрав адресную строку, я получу ошибку, которую я должен получить с сервера (400 неверных запросов).Получение ошибки 404, когда существует страница

Вот мой HTML (обратите внимание, я использую лист):

#extend("base") 

#export("head") { 
    <link rel="stylesheet" href="/styles/normalize.css"> 
    <link rel="stylesheet" href="/styles/skeleton.css"> 
} 

#export("body") { 
    <div class="container"> 
     <form action="/admin/new-post" method="POST"> 
      <div class="row" style="padding: 25px 0 0 0;"> 
       <div class="six columns form-group"> 
        <label for="email">Usernam</label> 
        <input class="u-full-width" type="text" placeholder="Username" id="email" name="email"> 
       </div> 
       <div class="six columns form-group"> 
        <label for="password">Password</label> 
        <input class="u-full-width" type="password" placeholder="Password" id="password" anem="password"> 
       </div> 
      </div> 
      <input type="hidden" name="_csrf" value="{{csrfToken}}"> 
      <button type="submit" class="button-primary">Login</button> 
     </form> 
    </div> 
} 

И мой код сервера (Swift):

import Vapor 
import HTTP 

final class AdminController { 

    func addRoutes(to drop: Droplet) { 
     let admin = drop.grouped("admin") 
     drop.get("login", handler: login) 
     admin.get("new-post", handler: newPost) 
    } 

    func login(_ request: Request)throws -> ResponseRepresentable { 
     return try drop.view.make("admin-login", []) 
    } 

    func newPost(_ request: Request)throws -> ResponseRepresentable { 
     guard let cred = request.auth.header?.basic else { 
      throw Abort.badRequest 
     } 
     do { 
      try request.auth.login(cred) 
      return try drop.view.make("new-post", []) 
     } catch { 
      return Response(redirect: "/login?login=failed") 
     } 
    } 
} 

Почему я получаю ошибку 404?

Веб-каркас, который я использую, представляет собой пар.

ответ

2

Итак, взгляните на свою капельке, вы добавляете новый маршрут с ПОЛУЧИТЬ -request new-post но ваша форма попробовать POST в new-post, конечно, что не получится.

Попробуйте изменить

admin.get("new-post", handler: newPost)

в

admin.post("new-post", handler: newPost)

 Смежные вопросы

  • Нет связанных вопросов^_^