正在添加die();
在ajax函数文件的末尾,我看到了完全空白的页面,Firebug中出现了以下错误:
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must to be declared in the document or in the transfer protocol.
我缩小到一个非常基本的ajax函数文件:
<?php
function show_article(){
$q = $_GET[\'getid\'];
echo strval($q);
}
die();
?>
这仍然会产生空页和错误。没有
die();
在收盘时,它按预期工作,但在回响的$q值末尾有额外的0。
我不确定是什么导致了这个问题。对于额外的上下文,下面是我在函数中得到的内容。php文件。
function ajaxscripts() {
wp_enqueue_script( \'productajax\', get_template_directory_uri().\'/js/productajax.js\', false, null, false );
wp_localize_script( \'productajax\', \'myajax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
}
add_action(\'wp_enqueue_scripts\', \'ajaxscripts\');
$dirName = dirname(__FILE__);
$baseName = basename(realpath($dirName));
require_once ("$dirName/getarticle.php"); //my ajax function file
add_action( \'wp_ajax_nopriv_show_article\', \'show_article\' );
add_action( \'wp_ajax_show_article\', \'show_article\' );
最合适的回答,由SO网友:RRikesh 整理而成
这个die
应该在你的show_article()
作用你的剧本已经出局了,所以整个剧本都被终止了。您的功能应该是:
function show_article(){
$q = $_GET[\'getid\'];
echo strval($q);
die;
}
或
function show_article(){
$q = $_GET[\'getid\'];
exit( strval($q) );
}