最近、運がない問題を解決しようとしています。基本的にAJAXを使用してフォームをサーバーに送信しようとしています。私はFormData
JQuery 1.12のjavascriptオブジェクトを使用しています。データはサーバーに到着しますが、私はそれをどのようにフォーマットするのか分かりません。Laravel 5.4はFormDataを解析できませんJavery Ajaxを使用してJavascriptオブジェクトを送信
これは私のAJAX機能である:
function saveMenu(id){
var formElement = document.getElementById("menu-form");
var formData = new FormData(formElement);
formData.append('_method', 'PUT');
$("#form-wrapper").toggleClass("be-loading-active");
$.ajax({
type: 'PUT',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "{{url('myUrl')}}",
data: formData,
enctype: 'multipart/form-data',
processData: false,
success: function(response) {
toastr.success('Yai! Saved successfully!')
},
error: function(response) {
toastr.error('Oh oh! Something went really wrong!')
},
complete: function() {
$("#form-wrapper").toggleClass("be-loading-active")
}
});
}
と私は私のコントローラでdd($request->all());
を実行するとき、私はこのような何かを得る:私が試した
array:1 [
"------WebKitFormBoundaryRCIAg1VylATQGx46\r\nContent-Disposition:_form-data;_name" => """
"_token"\r\n
\r\n
jtv4bnn8WQnP3eqmKZV3xWka2YOpnNc1pgrIfk0D\r\n
------WebKitFormBoundaryRCIAg1VylATQGx46\r\n
Content-Disposition: form-data; name="blocks[43][title]"\r\n
\r\n
...
もの:
-
を
- HTTP動詞をPOSTに設定します。同じ結果。
- AJAX
contentType: false
,contentType: application/json
を設定します。空の応答。 enctype: 'multipart/form-data'
を削除します。同じ応答。
何か助けていただければ幸いです。
を除外します。あなたはこのdd($ request - > _ method)を試しましたか? –
@RomnickSusaはい、nullを返します。 – Asur
私はそれが鍵だと思うので 'nctype: 'multipart/form-data'を削除した後にjsキャッシュを削除しました –