1

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"
}
4

2 に答える 2

0
echo json_encode("Values"=>$DatabaseEntity);

alert(data.Values);
于 2012-10-03T10:40:04.210 に答える
0

文字列を 1 つだけ返す場合は、.d 属性を使用します。

 alert(data.d)
于 2012-10-03T10:43:19.520 に答える