jQuery.ajax 経由でファイルを送信しようとすると、投稿がうまくいきます。ファイルの保存が完了したら、次のようにデータベース情報の JSON オブジェクトを送り返します。
header("Content-Type: application/json; charset=utf-8");
echo json_encode($DatabaseEntity);
die();
ただし、JSON オブジェクトではなく、クライアント側の ajax 成功コールバックの「データ」パラメーターは null です。
jQuery.ajax は次のように設定されています。
$.ajax({
url: /* url */,
type: "POST",
data: postingData, // it's a FormData object
dataType: "json",
cache: false,
contentType: false, // it's because the FormData, if I set "multipart/form-data", then the data not sended
processData: false,
success: function(data) {
alert(data); // => this is NULL, and I don't know why!
}
});
Firefox FireBug は結果を示します: これは適切にフォーマットされた JSON 文字列です
「データ」がnullである理由はありますか?
アップデート
$DatabaseEntity には次のようなものが含まれています。
object(DatabaseEntity)#15 (9) {
["Label"]=>
string(5) "somethinglabel"
["Description"]=>
string(3) "somethingdesc"
["Link"]=>
string(6) "somethinglink"
["FileID"]=>
string(4) "1761"
["Order"]=>
string(1) "1"
["Visible"]=>
string(1) "1"
["ID"]=>
string(1) "1"
}