如何从 wordpress rest 访问表单对象 api
How to access form object from wordpress rest api
我正在使用这个 ajax 调用参数来传递数据:
var formData = new FormData();
formData.append('file', selectedFile);
formData.append('subject', 'test subject');
formData.append('message', 'test message');
url: 'my/endpoint',
type: 'POST',
data: formData,
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false
这是我的终点:
function test_endpoint(WP_REST_Request $request){
return $request->get_body();
//return wp_mail( $to, $subject, $body, $headers, $attachments );
}
我可以看到数据:
基本上我是在尝试访问表单参数,以便将它们放入电子邮件中。我不知道如何访问文件、主题和消息?
您不能或至少不应在使用 Wordpress 时直接调用 ajax。
有一个内置机制来处理 ajax 调用。
大致你需要做的是:
编写触发 ajax 调用时将在服务器上执行的函数,然后将其绑定到 ajax 回调操作。
add_action( 'wp_ajax_nopriv_myaction', 'my_ajax_processing_func' );
add_action( 'wp_ajax_myaction', 'my_ajax_processing_func' );
function my_ajax_processing_func() {
<Your processing here>
}
注意 add_action()
中的“myaction”部分。在从客户端发送的表单数据中,必须有一个 action
参数设置为此标识符 (myaction) 才能进行绑定。
同样在表格中 url
必须设置为 admin_url( 'admin-ajax.php' )
。这个url的获取方式是使用wp_localized_script()
.
下载到js脚本中
您可以在这里找到完整的解释:
Using AJAX With PHP on Your WordPress Site Without a Plugin
出于安全原因,另请查看这篇文章以将随机数添加到表单中。
How to Add a WordPress AJAX Nonce
我发现那是我的ajax。所以我直接切换到 XHR,它成功了:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'my/endpoint', true);
xhr.onload = function () {
console.log('response',JSON.parse(this.responseText));
};
xhr.send(formData);
我正在使用这个 ajax 调用参数来传递数据:
var formData = new FormData();
formData.append('file', selectedFile);
formData.append('subject', 'test subject');
formData.append('message', 'test message');
url: 'my/endpoint',
type: 'POST',
data: formData,
cache: false,
contentType: false,
enctype: 'multipart/form-data',
processData: false
这是我的终点:
function test_endpoint(WP_REST_Request $request){
return $request->get_body();
//return wp_mail( $to, $subject, $body, $headers, $attachments );
}
我可以看到数据:
基本上我是在尝试访问表单参数,以便将它们放入电子邮件中。我不知道如何访问文件、主题和消息?
您不能或至少不应在使用 Wordpress 时直接调用 ajax。 有一个内置机制来处理 ajax 调用。
大致你需要做的是:
编写触发 ajax 调用时将在服务器上执行的函数,然后将其绑定到 ajax 回调操作。
add_action( 'wp_ajax_nopriv_myaction', 'my_ajax_processing_func' );
add_action( 'wp_ajax_myaction', 'my_ajax_processing_func' );
function my_ajax_processing_func() {
<Your processing here>
}
注意 add_action()
中的“myaction”部分。在从客户端发送的表单数据中,必须有一个 action
参数设置为此标识符 (myaction) 才能进行绑定。
同样在表格中 url
必须设置为 admin_url( 'admin-ajax.php' )
。这个url的获取方式是使用wp_localized_script()
.
您可以在这里找到完整的解释: Using AJAX With PHP on Your WordPress Site Without a Plugin
出于安全原因,另请查看这篇文章以将随机数添加到表单中。 How to Add a WordPress AJAX Nonce
我发现那是我的ajax。所以我直接切换到 XHR,它成功了:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'my/endpoint', true);
xhr.onload = function () {
console.log('response',JSON.parse(this.responseText));
};
xhr.send(formData);