ファイルの削除ハンドラからカスタムエラーメッセージが返ってきています。私は確信していませんが、それは削除がアップロードとは異なる方法で処理されるようです。ドキュメントから詳細アップローダの削除カスタムエラーメッセージが返されない
:削除のための私のサーバーハンドラで
You may return any response you like, as the XMLHttpRequest object will be passed to your onDeleteComplete handler for further examination. However, the response code you return is important to Fine Uploader, as it uses this to determine if the delete has succeeded or not. The following response codes indicate success for this specific request: 200, 202, and 204. Any other response code indicates a failure.
私は、エラーをキャッチし、FineUploaderへの応答を返送するためにこれを持っています。
catch (Exception ex)
{
//const string json = "{\"success\":false}";
const string json = "{\"success\":false,\"error\":\"THIS IS THE ERROR\"}";
//const string json = "{\"error\":\" HERE IS THE ERROR! \"}";
var response = (Response)json;
response.ContentType = "text/plain";
//response.StatusCode = HttpStatusCode.InternalServerError;
return response;
}
私は、バック{"success":false}
エラーと一緒にちょうど{"success":false}
だけエラーを送信しようとしています。 jsonが有効であることを確認しました。 しかし、それは全く何もしないようです。 FineUploaderにとって重要なのはレスポンスです。ステータスコード。失敗した応答コードを送信すると、FineUploaderはエラーを認識し、そのコードのメッセージを表示します。また、errorReasononErrorコールバックに戻ってきます。
応答ステータスコードを設定しないと、デフォルトでOKになり、エラーは発生しません。
私は、PHPのコード例を見て、削除ハンドラでこれを見ています
if (is_dir($target)){
$this->removeDir($target);
return array("success" => true, "uuid" => $uuid);
} else {
return array("success" => false,
"error" => "File not found! Unable to delete.".$url,
"path" => $uuid
);
}
明らかに、そのコードは、カスタムエラーメッセージで"success":fail
を送り返しています。 しかし、私はどの応答ステータスが返送されているのか、そのコードではうまくいかない。
アップデート1:ここでは、サーバーの応答をハンドラに、クライアント上のJSです:
callbacks: {
onError: function(id, name, errorReason, xhrOrXdr) {
alert(qq.format("Error on file number {} - {}. Reason: {}", id, name, errorReason));
console.log(errorReason);
}
だから、私は何か間違ったことをやっていますか?
アップデート2:
[OK]を、私はonDeleteComplete
を見て持っていたし、私のクライアントコードは次のようになります。私は、ブラウザでファイルを削除するとき
callbacks: {
onDeleteComplete: function(id, xhr, isError) {
alert("onDeleteComplete => id is:" + id + " Is error?:" + isError);
},
onError: function(id, name, errorReason, xhrOrXdr) {
alert(qq.format("onError => Error on file number {} - {}. Reason: {}", id, name, errorReason));
console.log(errorReason);
},
今私はonError
アラートを取得します最初はonDeleteComplete
です。どちらの場合も、サーバーハンドラから返信したいエラーメッセージを表示する方法が見つかりません。 onError
は、常に私のjsonレスポンスで定義されたエラーメッセージではなく、HttpStatusエラーメッセージを表示するようです。 onDeleteComplete
にはエラーを戻すパラメータはありません。
..学習プロセスです。あなたの質問にあなたの実際のonDeleteCompleteハンドラを含めてください。 –
私はOnErrorのJavaScriptを追加しました。しかし、あなたのコメントは私がonDeleteCompleteのエラーを処理する必要があり、onErrorコールバックを処理するべきではない可能性があることを認識させてくれます。 onErrorが呼び出され、onDeleteCompleteが削除の成功時にのみ呼び出されることは論理的なようです。私はないと思いますか? –
ドキュメンテーションが述べるように、削除操作が完了すると 'onDeleteComplete'コールバックが呼び出されます。成功すると厳密に呼び出された場合、それは 'onDeleteSuccess'と呼ばれます。この動作は、 'onComplete'コールバックなど、APIの残りの部分と一貫しています。 –