Setzen von Cookies in WP REST API-Anfragen

Ich versuche setcookie innerhalb einer WP REST-Anfrage zu verwenden, aber es funktioniert nicht. Die REST-Anforderung wird ordnungsgemäß ausgeführt und erfüllt ihre anderen Aufgaben gut, setzt jedoch keine Cookies.

Hier ist mein Beispielcode, der auf mywebsite.com läuft

 add_action( 'rest_api_init', function () { register_rest_route( 'my_auth/v1', '/auth_login', array( 'methods' => array('POST'), 'callback' => 'auth_login', )); }); function auth_login( WP_REST_Request $request ) { update_post_meta(1234, 'test_field', 'test_value'); // this works! setcookie('auth_token', 'test1234', time()+3600, "/", 'mywebsite.com'); // this doesn't work return 'test'; } 

Wenn ich eine AJAX-Anfrage an meinen Endpunkt ( mywebsite.com/wp-json/my_auth/v1/auth_login ) mywebsite.com/wp-json/my_auth/v1/auth_login , update_post_meta Aufruf update_post_meta gut, der setcookie Aufruf jedoch nicht. Ich habe dies getestet, indem ich mywebsite.com nach einer Anfrage, die keine Cookies gesetzt hat, besucht habe.

Solutions Collecting From Web of "Setzen von Cookies in WP REST API-Anfragen"

Das Hinzufügen dieser Zeile zu meinem $.ajax Aufruf hat das Problem für mich behoben.

 $.ajax({ xhrFields: { withCredentials: true }, // the rest... 

Hinweis: Dazu muss der folgende Header auf der Serverseite festgelegt werden, der standardmäßig mit der REST-API aktiviert wird (wie es scheint).

 Access-Control-Allow-Credentials:true