我在 iframe 中嵌入了 Angular 应用程序到 Wordpress 站点。
Angular 应用程序试图触发在子主题的 function.php 文件中注册的 Wordpress 操作,代码如下:
angular_app.js
this.http.post('/wp-admin/admin-ajax.php', {action: 'my_sendmail', data: 'whatever'}).subscribe((response) => {
console.log(response);
});
函数.php
add_action( 'wp_ajax_my_sendmail', 'my_sendmail_function' );
add_action( 'wp_ajax_nopriv_my_sendmail', 'my_sendmail_function' );
function my_sendmail_function() {
wp_send_json(array('resp' => 'Hello World!'));
wp_die();
}
以上不起作用。有趣的是,当我将 JS 代码更改为:
this.http.get('/wp-admin/admin-ajax.php?action=my_sendmail').subscribe((response) => {
console.log(response);
});
它可以工作,但是我确实需要将其设为 POST,因为我需要在请求中发布大量数据。有人知道这里发生了什么吗?