JSON响应问题

时间:2015-07-31 02:43:26

标签: javascript json angularjs go

我在使用Golang时相当新,我在尝试发回JSON响应时遇到了一个问题。

我的main.go代码看起来像这样:

import (
"github.com/gorilla/mux"
"github.com/justinas/alice"
) 

mx.Handle("/verify", commonHandlers.ThenFunc(controller.VerifyHandler)).Methods("GET").Name("verify") // Used to display verify.html
mx.Handle("/verify", commonHandlers.ThenFunc(verifyUser)).Methods("GET") // I'm actually not certain if I can call 2 different function handlers on the same URL

我的verifyHandler调用RenderTemplates,它看起来像这样:

func RenderTemplates(w http.ResponseWriter, r *http.Request, name string) {
    f, err := os.Open("./templates/" + name)
    check(err)
    defer f.Close()
    buf, err := ioutil.ReadAll(f)
    check(err)
    fmt.Fprintf(w, string(buf))
}

RenderTemplates用于显示我的verify.html页面

然后我有verifyUser函数处理程序,它发回一个JSON格式的响应,看起来像这样:

response := generateResponse("Message goes here", false)
            res, err := json.Marshal(response)
            if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
            }
            w.Header().Set("Content-Type", "application/json")
            w.Write(res)

然后我让我的AngularJS控制器发出请求:

app.controller("verifyControl", ['$scope', '$http', function($scope, $http) {
    $scope.message = "";
    $http({
      method: 'GET',
      url: "/verify"
      }).success(function(data) {
       $scope.message = data.msg;
       console.log(data);

    });

  }]);

问题是我从AngularJS调用回来的响应不是JSON,而是我认为来自verifyHandler的verify.html HTML页面。有没有我可以获得JSON响应的解决方案?

0 个答案:

没有答案