mp3por mp3por - 5 months ago 70
Ajax Question

Ajax from browser does not work but from PostMan works

$.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

Answer

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
    });
}