dssqq82402 2016-06-30 13:19
浏览 174
已采纳

来自浏览器的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 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
        });
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型