リモートサーバーからデータを投稿および取得するリアクティブネイティブアプリがあります。ポストでは、トークンミスマッチエラーを回避するためにcsrfトークンを含める必要があります。これはバックエンドlaravelメソッドです
//Android Login
public function androidLogin(){
return response()->json([
"name" => "Android Login",
"route" => "androidLogin"
]);
}
これが反応するネイティブコードです(エラーキャッチコードを削除しました)。
async handleSubmit(){
var me = this.state.message;
console.log("this connected",me);
let response = await fetch("http://not-brusselus.be/androidLogin", {
method: "POST",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"X-CSRF-TOKEN":"csrf_field()"
},
body: JSON.stringify({
session:{
email: "chesterfield@gmail.com",
password: "123456",
}
})
});
//let res = await response.text();
if (true) {
console.log(response);
} else {
//Handle error
//let error = res;
//throw error;
}
}
応答にlaravelのトークンミスマッチページが表示されます。csrfトークンを正常に送信するにはどうすればよいですか。
回答:
回答№1は2CSRFトークンを window
メインのlaravelレイアウトファイルで定義されているとおり:
window.Laravel = {
csrfToken: "{{csrf_token()}}"
}
次に、javascriptリクエストでそれを使用します。
...window.Laravel.csrfToken
編集
ダウンボッターへ:これは文字通り、Laravelが箱から出してすぐに行う方法であり、同様に行うことをお勧めします。