Я перехожу из jquery $ .ajax, который отлично работает, используя AngularJS $ http.put для доступа к restful API.
Я могу сделать вызов API, но данные PUT не послан - поэтому мой API видит запрос PUT с пустым объектом данных, который должен содержать строку JSON ->data.values = 'a json structure'
$http.put(
$rootScope.api_url,
{
values: jsonifiedValues
},
{
headers: {
apihash: sha256hash
}
}).success(function(data,status,headers,config){
// handle success
}).error(function(data,status,headers,config) {
// handle failure
});
Раньше я не использовал AngularJS $ http, но когда я вывожу данные в своем PHP api, он просто пуст. это то, как я потянув его из запроса в PHP:
parse_str(file_get_contents('php://input'), $put_vars);
$arr_req_data = $put_vars['values'];
В моей API, если apihash послал из запроса не соответствует SHA256 хэш построен на значениях PUT, он терпит неудачу.
Это работает в JQuery, просто проваливается, теперь я перешел на $ http. Я не уверен, почему данные PUT кажутся пустыми.
Вы посмотрели, что браузер действительно отправляет с помощью devtools вашего браузера? – Andorbal
Хорошо, я не проверял его, но данные отправлялись –