文字列と画像を含む個人プロファイルを入力するための HTML フォームがあります。そして、1 回のバックエンド API 呼び出しでこれらすべてのデータを JsonObject として投稿する必要があり、バックエンドにはバイナリ データとして送信される画像ファイルが必要です。これが私のJsonデータです。
var profile = {
"userId" : email_Id,
"profile.name" : "TML David",
"profile.profilePicture" : profilePhotoData,
"profile.galleryImageOne" : profileGalleryImage1Data,
"profile.referenceQuote" : "Reference Quote"
};
また、profilePhotoData、profileGalleryImage1Data、profileGalleryImage2Data、profileGalleryImage3Data はすべて画像のバイナリ データ (Base64) です。
そして、ここに私の事後関数があります:
function APICallCreateProfile(profile){
var requestUrl = BASE_URL + API_URL_CREAT_PROFILE;
$.ajax({
url: requestUrl,
type: 'POST',
data: profile,
dataType:DATA_TYPE,
contentType: CONTENT_TYPE_MEDIA,
cache:false,
processData:false,
timeabout:API_CALL_TIMEOUTS,
success: function (response) {
console.log("response " + JSON.stringify(response));
var success = response.success;
var objectData = response.data;
if(success){
alert('CreateProfile Success!\n' + JSON.stringify(objectData));
}else{
alert('CreateProfile Faild!\n'+ data.text);
}
},
error: function(data){
console.log( "error" +JSON.stringify(data));
},
failure:APIDefaultErrorHandler
})
.done(function() { console.log( "second success" ); })
.always(function() { console.log( "complete" ); });
return false;
}
しかし、それでも失敗しました。サーバー側を確認したところ、「マルチパート境界が見つかりませんでした」というエラーが表示されました。
誰でもこれで私を助けることができます、ありがとう:)
更新: var DATA_TYPE = "json"; var CONTENT_TYPE_MEDIA = "マルチパート/フォームデータ";