Eine Ajax-Anfrage von einer anderen Domain erstellen

Ich mache eine Ajax-Anfrage von meiner primären Domain an eine Subdomain. Ich habe meine Cross-Origin-Probleme getriggers, sodass ich keinen Fehler erhalte. Der Anruf gibt data:0 . Ich habe meine Antwortkonfiguration überprüft und die Ajax-URL ist korrekt sowie “Aktion”. Meine functions.php sieht so aus:

 add_action("wp_ajax_sendhire", "sendhire"); add_action("wp_ajax_nopriv_sendhire", "sendhire"); function sendhire() { $cars = array("Volvo", "BMW", "Toyota"); return json_encode($cars); die(); } 

Die Daten dienen offensichtlich nur zum Testen.

Solutions Collecting From Web of "Eine Ajax-Anfrage von einer anderen Domain erstellen"

Wenn Sie Admin-Ajax zur Ausgabe des Inhalts verwenden möchten, sollten Sie stattdessen echo verwenden. Es gibt nichts zu sehen, wenn Sie return , also erhalten Sie eine 0 .

Dieses Zitat aus dem Codex erklärt weiter über die 0 Antwort:

Wenn die Ajax-Anfrage in wp-admin/admin-ajax.php , wird die Antwort je nach dem Grund für den Fehler -1 oder 0 sein. Wenn die Anfrage erfolgreich ist, aber die Ajax-Aktion nicht mit einem WordPress-Hook add_action('wp_ajax_(action)', ...) mit add_action('wp_ajax_(action)', ...) oder add_action('wp_ajax_nopriv_(action)', ...) , admin-ajax.php antwortet mit 0.

Wenn Sie nun eine JSON-Antwort ausgeben möchten, sollten Sie sich die REST-API ansehen. Der Standardantwortetyp ist JSON.

Registrieren Sie dazu einen Pfad für den Endpunkt und erstellen Sie eine Callback-function:

 add_action( 'rest_api_init', function () { register_rest_route( 'dcp3450', '/test_endpoint/', array( 'methods' => 'GET', 'callback' => 'sendhire' ) ); }); function sendhire() { $cars = array("Volvo", "BMW", "Toyota"); return $cars; } 

http://example.com/wp-json/dcp3450/test_endpoint/ Sie jetzt auf http://example.com/wp-json/dcp3450/test_endpoint/ zugreifen, erhalten Sie Ihre JSON-Antwort, und Sie können diese lästige 0 loswerden, die der Menschheit bis zum Ende folgt.