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 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题