2015-10-26 2 views
2

, когда я размещать объекты данные app.js к HomeController с использованием два различных методов (полная $http.post и сокращенная $http.post), как показано ниже:

var book = { 
    "title" : $scope.addTitle, 
    "publisher" : $scope.publisherSelected[0], 
    "authors" : $scope.authorsSelected, 
    "genres" : $scope.genresSelected 
}; 

//This one posts data successfully: 
$http({ 
    method : 'POST', 
    url : '../administrator/addBook', 
    data : book, 
}). 

//This one fails: 
$http.post("../administrator/addBook", { 
    data : book 
}, 

В чем разница между ними? Я думал, что они такие же.

+1

Совет: для исследования таких проблем нажмите F12 (Cmd-Alt-I на Mac) в браузере, щелкните вкладку сети и сравните два запроса. –

+0

Возможный дубликат [AngularJs $ http.post() не отправляет данные] (http://stackoverflow.com/questions/19254029/angularjs-http-post-does-not-send-data) – akashrajkn

ответ

2

При использовании сокращенного метода post, второй аргумент сам по себе является данными, поэтому нет необходимости добавлять обертку {data:book} (добавление его должно быть нарушено вашим контрактом с сервером, вы можете проверить отправленные данные с помощью сетевой консоли браузера). Таким образом, разница между apis заключается только в том, как вы устанавливаете конфигурацию.

Так

$http({ 
    url: 'someurl', 
    data: someData, //Post data 2nd argument in http.post 
    method: 'POST', //implicit in case of http.post 
    config: { //This goes in as third argument 
     headers: someheadersObj, 
     transformRequest : someTransformFunc, 
     ... 
    } 
}); 

будет

$http.post('someurl', book, { 
     headers: someheadersObj, 
     transformRequest : someTransformFunc, 
     ... 
    }) 

т.е., вам нужно сделать только это:

$http.post("../administrator/addBook", book) 

Documentation

post (url, data, [config]);

Read this для всей имеющейся конфигурации.

+0

О, ничего себе, это так сложно. Спасибо вам! – NMSL

+0

Примите ваш ответ за 10 минут. – NMSL

+0

@EalonWang Добро пожаловать – PSL

Смежные вопросы