0
PUTメソッド経由でデータを送信しようとしましたが、Laravel 5.5では宛先コントローラのInput(またはRequest)内にデータが表示されません。ここで純粋なJavascriptからLaravelコントローラへPUTを送信
はJS:
function selectProject(option){
console.log('Update selected');
var data = new Object();
data.project_id = option.value;
data.user_id ={{auth()->user()->id}};
console.log(data);
var url = "/admin/projects";
var xhr = new XMLHttpRequest();
xhr.open("PUT", url+'/update_selected', true);
xhr.setRequestHeader("X-CSRF-TOKEN", "{{ csrf_token() }}");
xhr.onload = function() {
var response = xhr.responseText;
if (xhr.readyState == 4 && xhr.status == "200") {
console.log(response);
document.getElementById("app").innerHTML = response;
} else {
console.log(response);
document.getElementById("app").innerHTML = response;
}
}
xhr.send(data);
}
をLaravelコントローラ内部で私は入力を示すにしてみてください:
echo '[Controller]Inputs:';
return Input::all();
ここではconsole.logからの出力を:
Update selected
{…}
project_id: "4"
user_id: 1
__proto__: Object { … }
[Controller]Inputs:[]
質問:何i'am間違っていると入力データはどこですか? p.s.私は純粋なjavascript、jQueryまたはanotherを使用することはできません。 JSONに
xhr.setRequestHeader("content-type", "application/json");
・包装データ:ヘッダを付加することによって解決
私は* URLエンコードされた名前/値ペアではないに*そのlaravelがあなたのデータを期待していると思いますjavascriptオブジェクトです。 'var data = 'project_id =' + encodeURIComponent(option.value)+"&user_id = "+ encodeURIComponent({{auth() - > user() - > id}})'を実行して送信してください。 – James
まだコントローラにデータがありません... – deSoul