前回のブログでは、ajaxgetjsonp クロスドメイン メソッドについて説明しました。post メソッドがデータを送信し、バックエンドがそれを受け入れる点に注意する必要があります。
まず、Ajax コードに直接移動します:
$(document).ready(function() { $('#submit1').click(function(){ var data = new FormData($("#form1")[0]); //$("form").serializeArray(); //formData = new FormData(data); data.append("serect", 12324234); console.log(data); $.ajax({ type:"POST", url:"http://test/fuck", data: data, crossDomain: true, contentType: false, processData: false, dataType: 'json', success:function(data) { } }); return false; });この行に crossDomain: true を追加する必要があることに注意してください。そうしないと、エラーが報告され、そのエラーをクロスさせることになります。サーバーは cros で設定する必要があります。 laravelフレームワーク 私はバックエンドをやっているので、いくつか変更する必要があります。
1 つ目は、エントリー ファイル内のクロス コードを次のように設定することです:
$response = $kernel->handle( $request = Illuminate\Http\Request::capture() ); $response->header('Access-Control-Allow-Origin', '*') ->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE') ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Origin')->send(); $kernel->terminate($request, $response);2 つ目は、kernel.php でトークン検証をオフにすることです。そうしないと、受信側でエラーが報告されます:
AppHttpMiddlewareVerifyCsrfToken::class,
以下はサーバー側のphpコードです
public function fun(Request $request){
後ほど追加します
。
以上、ajax のクロスドメイン投稿方法を内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。