dssqq82402
dssqq82402
2016-06-30 13:19
浏览 97

来自浏览器的Ajax不起作用,但来自PostMan的起作用

$.ajax({
                    type: "POST",
                    url: "127.0.0.1:8080/sendData",
                    data:data,
                    dataType: 'jsonp',
                    success: function(result) {
                        console.log("post successful")
                    },
                    error: function(result, status, error){
                      console.log("post unsuccessful");
                      console.log(result);
                      console.log(error);
                    }
                });

This is the code I have. I have an AngularJS app from which I call this code and a GoLang server which listens.

When I execute this call from the browser's console or from within the controller it does not work - I get 404. Here is a pic ERROR

However if I post it from POSTMAN it works - here is a pic enter image description here

This is my golang code:

// ReceiveData - used to handle incoming data
func ReceiveData(w http.ResponseWriter, r *http.Request) {
    if r.Method != "POST" {
        http.NotFound(w, r)
        return
    }
    vars := mux.Vars(r)
    fmt.Println("ReceiveData function with data:")
    fmt.Println(vars)
    field := r.FormValue("textfield")
    fmt.Println("textfield: ", field)

    // database
    session, err := mgo.Dial("localhost")
    if err != nil {
        panic(err)
    } else {
        fmt.Println("session created")
        database := session.DB("schedule_calculator")
        collection := database.C("schedule_save")
        num, err := collection.Count()
        if err == nil {
            fmt.Println("schedule_save collection count = ", num)

        } else {
            fmt.Println("schedule_save error - ", err)
        }
    }

    if err := json.NewEncoder(w).Encode("todos"); err != nil {
        panic(err)
    }
}

This is my angularJS controller:

controller: function($scope, $element, $attrs, $transclude) {
            $scope.showSaveConfirmation = false;
            $scope.saveSuccessful = false;

            $scope.saveToDB = function() {
                var data = $scope.gridData;
                if (typeof data === 'object') {
                    data = JSON.stringify(data, undefined, 2);
                    $.ajax({
                        type: "POST",
                        url: "127.0.0.1:8080/sendData",
                        data:data,
                        dataType: 'jsonp',
                        success: function(result) {
                            console.log("post successful")
                        },
                        error: function(result, status, error){
                          console.log("post unsuccessful");
                          console.log(result);
                          console.log(error);
                        }
                    });
                } else {

                }

            }
}

What is going on ? Thank you

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douxian5963
    douxian5963 2016-06-30 13:25
    已采纳

    Try like this if you are using angular js currently you are doing ajax call with jquery not with angular js

    function sendData() {
        $http({
            url: 'request-url',
            method: "POST",
            data: { 'message' : message }
        })
        .then(function(response) {
                // success
        }, 
        function(response) { // optional
                // failed
        });
    }
    
    点赞 评论

相关推荐