我有下一个情况:
插件-这是我的产品。
AJAX客户端-另一个用户,谁将使用我的“计算器”。
所以问题:
发布于 2018-01-16 08:21:11
这种方法不安全。您应该使用accepting来接受跨域请求。另外,您应该添加随附带的auth1.0。下面是一个链接,展示如何将自己的端点添加到rest https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/中
下面的链接向您展示了如何使用auth1.0进行身份验证来保护api。https://wordpress.org/plugins/rest-api-oauth1/
希望这能有所帮助
发布于 2017-10-28 01:15:44
您需要在PHP中创建一个函数,以便对服务器进行API调用,并将其添加到阿贾克斯和诺普列夫挂钩中。
add_action( 'wp_ajax_your_ajax_function', 'your_ajax_function' );
add_action( 'wp_ajax_nopriv_your_ajax_function', 'your_ajax_function' );
function your_ajax_function() {
$url = 'http://www.google.com'; // url to your rest API
if ( isset( $_POST['data'] ) ) {
$response = wp_remote_post( $url, array( 'data' => $_POST['data'] ) );
if ( is_wp_error( $response ) ) {
echo $response->get_error_message();
exit;
}
else {
wp_send_json( $response );
}
}
}为了确保您能够访问正确的ajax路径,本地化ajax的路径,以便在javascript中使用
add_action( 'wp_enqueue_scripts', 'localize_ajax' );
function localize_ajax() {
wp_localize_script( 'jquery', 'ajaxurl', admin_url( 'admin-ajax.php' ) );
}注意:将jquery更改为您的javascript文件和/或确保一旦jquery在页面上排队,就创建函数。
接下来,在javascript中创建函数,该函数调用data字段中传递用户值的ajax函数,并将其附加到某些事件侦听器:
function yourFunction() {
jQuery.ajax( {
method: 'POST',
url: ajaxurl,
data: {
'action' : 'your_ajax_function',
'data' : 'test'
},
success: function( response ) {
// do what you want with your response
console.log( response );
}
});
}这将返回API调用的响应,因此使用response在DOM中填充结果。
https://stackoverflow.com/questions/46983366
复制相似问题