使用die()关闭AJAX函数文件会导致错误和空页

时间:2013-06-06 作者:cryssybee

正在添加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\' );

2 个回复
最合适的回答,由SO网友:RRikesh 整理而成

这个die 应该在你的show_article() 作用你的剧本已经出局了,所以整个剧本都被终止了。您的功能应该是:

function show_article(){
  $q = $_GET[\'getid\'];
  echo strval($q);
  die;
}

function show_article(){
  $q = $_GET[\'getid\'];
  exit( strval($q) );
}

SO网友:Stephen Harris

你的die() 超出功能范围show_article().

结束

相关推荐

Load ajax if is_home()

我想用ajax在主页上展示一些简单的东西。问题是,当is\\u home()为true时,我想加载所有内容。Php,js,一切。In funtions.php:add_action(\'init\', \'pint_functions_separation_test\'); function pint_functions_separation_test(){ if ( is_home() ) { require_once(\'functions_hom