uploadify + jQueryの1.4応答がuploadComplete後に空であります
質問
私は、画像をアップロードするためにjqueryの1.4とuploadify使用しています。我々はこれを印刷し、ファイルをアップロードするPHPスクリプトでます:
$json_response['status'] = "true";
$json_response['file'] = $_FILES;
echo Zend_Json_Encoder::encode($json_response);
私たちは(短期的に)行うJavaScriptでます:
$('#images_upload_file').uploadify({
onComplete: function(event, queueID, fileObj, response, data) {
console.log("upload complete");
console.log(response);
「応答」は、どんな常に空ではありません。イベントは、キューID、fileobjのデータはすべて正しく満たされています。誰もがこの問題を解決する方法を知っていますか?
あなたはより多くの情報が必要なら、私に教えてください。 PS:私たちのコードをアップロードした画像だけで罰金、ちょうど応答は、我々は1.4をjQueryのためにアップグレードするので、すべての時間は空です。
解決
私はいつもどんなJSONデータを処理するためにjson2.js
を使用しています。データが適切なJSON形式でない場合にはこのライブラリには、安全機構を持っています。あなたは、 http://json.orgするからそれを得るから直接それを使用していない、JSファイルをダウンロードすることを確認することができます自分のサイトます。
私のコードは常にこのようになります:
onComplete : function (event, queueID, fileObj, response, data) {
//process response
try {
var r = JSON.parse(response);
//process the JSON data, ex
console.log(r.status);
}
catch(e) {
//not json or bad format, do something about it
alert("cannot parse data as json!");
}
}
私のPHPスクリプトは、セッションのチェックを持っている、とのセッションが受け入れられない場合はリダイレクトされますので、私はjson2.js
を使う理由があります。これは、フィルタモジュールを使用して、ページに入る前に行われたので、私はそれならばAJAX要求、または通常のページへのアクセスを確認することができません。必要なセッションは、ページのルールを満たしていない場合、それはすぐにリダイレクトされますので、それは完全なWebページを返します。
この応答が有効なJSON形式ではないでしょう。私はjson2.js
ブロックでそれを扱うことができるcatch
を使用して、その後、例えば、現在のページを再読み込み、別のアクションを実行します。これは私がいつも使うだけで何かで、いつも私のために働いています。
FYI、json2.js
は必要ないとjQueryと関係のない全くます。
他のヒント
PHPスクリプトでオンにするerror_reportingていますか?
これは致命的なエラーをすることができた(例えば、それがZend_Json_Encoderクラスをロードすることができないため)ためerror_reporting
設定で出力されないこと