2016-12-28 4 views
0

У меня возникли проблемы с чтением значения из HTML-формы в Go, которое должно быть прямым. По какой-то причине значение «пользователь» в моем обработчике Auth_login всегда пустое, даже после того, как я заполнил форму ниже и нажмите кнопку «отправить».Значение формы пустое после сообщения

Handler, который вызывается, когда/Логин URL называется методом HTTP POST:

func Auth_login(w http.ResponseWriter, r *http.Request) { 
    r.ParseForm() 
    user := r.PostFormValue("username") 
    // Other actions here 
} 

Связанные формы (в слим-формате):

form action=/login method=post 

    br 
    | Name: 
    br 
    input#username type=text 

    br 
    | Password: 
    br 
    input#password type=password 

    br 
    input type=submit 
    a href=/login Cancel 

Я делаю что-то неправильно, при попытке прочитать поле формы html?

+0

Метод 'ParseForm' возвращает значение ошибки. Это 'nil'? Если нет, то что это? –

+0

Ошибка не возвращается, она возникает как dingalingchickenwiing

+0

Я просто понял! Я устанавливал значение ID текстового поля, но не значение «name». Как только я это установил, я смог разобрать форму! Неудивительно, что он возвращал пустые строки !!! – dingalingchickenwiing

ответ

1

Я только что понял ответ, посмотрев исходный код другого веб-сайта. Если у кого-то есть аналогичная проблема, я исправил ее, добавив значение «имя» в каждое из текстовых полей, которые я хотел проанализировать в Go. Например, Тонкий выше код стал бы следующим образом:

форма действия Метод =/= Войти размещать

br 
| Name: 
br 
input#username type=text name=username 

br 
| Password: 
br 
input#password type=password name=password 

br 
input type=submit 
a href=/login Cancel