正常に機能していたjquery$.ajaxから、AngularJS$http.putを使用してRESTfulAPIにアクセスするように切り替えています。
API呼び出しを行うことはできますが、PUTデータが送信されません-そのため、私のAPIは、JSON文字列を含む必要がある空のデータオブジェクトを含むPUTリクエストを認識します->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がPUT値に基づいて構築されたsha256ハッシュと一致しない場合、失敗します。
これはJQueryで機能していますが、$httpに切り替えただけで失敗します。PUTデータが空のように見える理由がわかりません。