2016-07-06 7 views
0

現在、私はイオンコラボ(AngularJS)を使用したアプリケーションで作業しています。私がこの時間を投稿したいと思ったので、Active Collabにこの時間を持たせてください。しかし、私はそれをしようとしたときに、私は500 Internal Server Errorを得ました。これは、(私がテストするために、アクティブなコラボのAPIドキュメントからのデータを使用)私のコードです:アクティブコラブへの時間レコードの投稿

var postData = { 
     "value": 1.5, 
     "user_id": 1, 
     "job_type_id": 1, 
     "record_date": "2014-05-14", 
     "billable_status": 0 
}; 

$http.post(baseUrl+'/projects/' + projectId +'/time-records/', postData, { headers: { 'Content-Type': 'application/json' }}).then(function(res){ ... } 

トークン(問題-トークン)を取得するためのPOSTリクエストの仕事。だから問題は何か分かりません。私は誰でも私を助けることができると思いますか?

トークンポストを動作させるために、私はapi.phpにいくつかの行を追加しなければなりませんでした。これはデフォルトでそこにいるのが良いのではないでしょうか?

if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { 
    // return only the headers and not the content 
    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) { 
     header('Access-Control-Allow-Headers: X-Requested-With'); 
    } 
    exit; 
} 

ありがとうございます!

+0

あなたの質問は、十分な情報が含まれていません。まず、 'baseUrl'の値は何ですか?次に、サーバーにトークンを送信しますか?トークンがなければ、あなたの要求は拒否されます。また、サーバーからの応答メッセージは含めませんでした。 500は単なるステータスですが、Active Collabは常に何が問題になっているかを確認するための情報を提供します(アプリケーションをデバッグモードにすると多くの情報を提供します)。 – Ilija

+0

また、APIを動作させるためにActive Collabのコードを変更する必要はありません。バージョン5のバックエンドは1つの大きなAPIであり、1つのコードを修正することなく4つのファーストパーティーのアプリと多数のサードパーティーのアプリで使用されます。コードにパッチを当てる必要がある場合は、アプローチに問題があります。 – Ilija

答えて

0

現在、Active Collabをローカルで実行しています。だからbaseUrlは:http://my-ip-address/mypath-to-ac/api/v5/projects/56/time-records/です。 authInceptorがあるので、トークンを追加する必要があります。私もpost-request内で送信しようとしましたが、同じエラーが発生しました。

私はもう少しデバッグして、いくつかのフィールドはnullであると言います。しかし、私は間違いなくこれらの畑を満たして送った。

これは私が要求して送りますことを、ログに記録されたデータである。

{"value":"1.5","user_id":10,"job_type_id":"0","record_date":1467965415.184,"billable_status":0} 

そして、これは誤りである、私が買ってあげる: debugged error as screenshot

+0

エラーメッセージに基づいて、Active Collabは送信したデータを受信しません(必要なフィールドの値が提供されていないことを示す検証エラーが発生するため、そこには存在しません)。メッセージに記述されているペイロードが実際にPOSTリクエストの本文として送信されることを確認します(正しいメソッドとURLを使用しています)。 – Ilija