Browse Source

POST общение JS и Go

toomanysugar 3 years ago
parent
commit
4d42740026
2 changed files with 22 additions and 3 deletions
  1. 19 1
      main.go
  2. 3 2
      www/index.html

+ 19 - 1
main.go

@@ -27,6 +27,7 @@ var (
 	indexTemplate = template.Must(template.ParseFiles("www\\index.html"))
 	logInTemplate = template.Must(template.ParseFiles("www\\login.html"))
 	signInTemplate = template.Must(template.ParseFiles("www\\signin.html"))
+	gameTemplate = template.Must(template.ParseFiles("www\\game.html"))
 )
 
 func indexHandler(w http.ResponseWriter, r *http.Request) {
@@ -181,6 +182,21 @@ func signInPostHandler(w http.ResponseWriter, r *http.Request) {
 	signInTemplate.Execute(w, data)
 }
 
+func gameGetHandler(w http.ResponseWriter, r *http.Request) {
+	gameTemplate.Execute(w, nil)
+}
+
+func gamePostHandler(w http.ResponseWriter, r *http.Request){ //TODO запись score в таблицу
+	if err := r.ParseForm(); err != nil {
+		fmt.Fprintf(w, "ParseForm() err: %v", err)
+		return
+	}
+	fmt.Printf("Post from website! r.PostFrom = %v\n", r.PostForm)
+	score := r.FormValue("score")
+	fmt.Fprintf(w,"score = %s\n", score)
+	fmt.Printf("score = %s\n", score)
+}
+
 func createLogger() {
 	startTime := time.Now()
 	logFileName := "logs/go-site_log_" + startTime.Format("2006-01-02_15-04-05") + ".txt"
@@ -215,12 +231,14 @@ func main() {
     
 
     requestRouter.HandleFunc("/", indexHandler).Methods("GET")
-    requestRouter.HandleFunc("/", indexPostHandler).Methods("POST")		//Есть ли нужда в обработке POST для /
+    //requestRouter.HandleFunc("/", indexPostHandler).Methods("POST")		//Есть ли нужда в обработке POST для /
     requestRouter.HandleFunc("/login/", logInGetHandler).Methods("GET")
     requestRouter.HandleFunc("/login/", logInPostHandler).Methods("POST")
     requestRouter.HandleFunc("/logout/", logOutGetHandler).Methods("GET")
     requestRouter.HandleFunc("/signin/", signInGetHandler).Methods("GET")
     requestRouter.HandleFunc("/signin/", signInPostHandler).Methods("POST")
+    requestRouter.HandleFunc("/game/", gameGetHandler).Methods("GET")
+    requestRouter.HandleFunc("/", gamePostHandler).Methods("POST")
     http.Handle("/", requestRouter)
     logger.Fatal(http.ListenAndServe(":8080", nil))
 }

+ 3 - 2
www/index.html

@@ -10,14 +10,15 @@
 		  var xhr = new XMLHttpRequest();// Создаём объект xhr
 		  xhr.open("POST", "/" , true);// Открываем асинхронное соединение
 		  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");// Отправляем кодировку
-		  xhr.send(); // Отправляем POST-запрос
+		  var data = 'score=500';
+		  xhr.send(data); // Отправляем POST-запрос
 		  xhr.onreadystatechange = function() // Ждём ответа от сервера
 		  {
 		    if (xhr.readyState == 4) // возвращает текущее состояние объекта(0-4)
 		    {
 		      if(xhr.status == 200) // код 200 (если страница не найдена вернет 404)
 		      {
-		        //location.reload(); // Выводим ответ сервера
+		        alert(this.responseText);
 		      }
 		    }
 		  }