我已经找到了与此问题相关的许多其他问题,但都无济于事。在本练习中,我将代码简化到最低限度,但是我看不出有什么问题。我已经检查了文档,一个多小时才浏览多个页面……到底是什么!
在模板页面中,我有一个调用Ajax的jQuery块:
NSOperationBlock
最初,我在同一文件中有PHP的代码,但这是愚蠢的,对吧?它进入functions.php ...不是吗?无论如何,在functions.php中:
// I still have no idea why I have to do this like this...
ajaxscript = { ajax_url :'<?php echo $post->post_name; ?>'}
$.ajax({
url : ajaxscript.ajaxurl,
data : {
'action' : 'mark_lesson',
'postname' : '<?php echo $post->post_name; ?>6'
},
method : 'POST',
success : function(output) {
console.log(output);
$(this).closest('.a_course').find('.read_it_check').addClass('checked');
$('#yur_here').hide();
},
error : function(e) {
console.log(e);
}
});
这里有什么要搞砸的?甚至没有足够的代码来弄错它,但是它神秘地返回了整个HTML页面,而不是我回显的内容。
答案 0 :(得分:2)
您的ajaxscript.ajaxurl
代码可能有问题,因此请尝试使用下面的代码作为您的网址。
// in JavaScript, object properties are accessed as ajax_object.ajax_url
wp_localize_script( 'ajax-script', 'ajax_object',
array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 ) );
}
有关更多信息,请访问here
答案 1 :(得分:0)
原来我有错字。我最初正确地做到了,然后在调试时通过放置错误了
<?php echo $post->post_name; ?>
代替:
<?php echo admin_url( 'admin-ajax.php' ) ?>
无需经历本地化脚本或任何其他内容的复杂性。我现在正在将admin-ajax网址直接提供给ajax函数,而没有多余的废话,它似乎可以正常工作。