我正在尝试在wordpress中使用带有表单操作的AMP。我正在使用带有 POST 方法的操作 xhr。
当我提交表单时,它给出错误
- 响应必须包含 AMP-访问控制-允许源-源标头
- 表单提交失败:错误:响应必须包含 AMP 访问控制允许来源标头
甚至尝试添加标题,如下所示
header("AMP-Access-Control-Allow-Source-Origin: https://www.demo.com");
问题仍然存在。有什么建议吗?
我正在使用wordpress版本5.0.3
.htaccess
文件设置标头。
Header set Access-Control-Allow-Origin 'https://cdn.ampproject.org'
Header set AMP-Access-Control-Allow-Source-Origin 'https://your-domain.com'
或者有一个简单的例子给你;
function amp_comment_submit(){
$comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
if ( is_wp_error( $comment ) ) {
$data = intval( $comment->get_error_data() );
if ( ! empty( $data ) ) {
status_header(500);
wp_send_json(array('msg' => $comment->get_error_message(),
'response' => $data,
'back_link' => true ));
}
}
else {
@header('AMP-Redirect-To: '. get_permalink($_POST['comment_post_ID']));
@header('AMP-Access-Control-Allow-Source-Origin: ' . $_REQUEST['__amp_source_origin'] );
wp_send_json(array('success' => true));
}
}
add_action('wp_ajax_amp_comment_submit', 'amp_comment_submit');
add_action('wp_ajax_nopriv_amp_comment_submit', 'amp_comment_submit');
更多 : https://medium.com/@surajair/creating-comment-form-on-amp-pages-in-wordpress-9dd675ba383b
如果使用WordPress的官方AMP插件,这些标头将通过AMP_HTTP::send_cors_headers()
方法自动发送。
有关插件行为的更多信息,请参阅处理表单提交行动手册。