AJAX随机返回响应为NULL

时间:2011-08-11 17:05:49

标签: jquery ajax json



这是我创建的小部件 - http://resources.bigrock.in/affiliate/widgets/Domain_Search_widget-300x250.html。它工作得很好,正如预期的那样。问题是,有时,Ajax响应是随机的(即'data is null'是我得到的错误)。我一直试图找出这个问题的原因。任何帮助将不胜感激。

以下是PHP文件的内容

header("Content-Type: application/json");
//header("Content-Type: text/javascript");

$domain_name = $_GET['domain_name'];
$tld = $_GET['tld'];

$text = file_get_contents("http://www.some.com/some.php?action=caajax&domain_name=$domain_name&tld=$tld");
echo $text;

之前我正在使用“Content-Type:text / javascript”,你可以看到。但错误的发生更多。所以我尝试了“Content-Type:application / json”,虽然这大大减少了它没有消除它的错误的发生。

我还在学习很多这些东西..所以任何想法为什么会发生这种情况?

编辑: 根据Codo的建议,我使用firebug研究了ajax配置文件。在正常成功的ajax电话上,有 - 参数|标题|回应| JSON

但有错误的是 - 参数|标题|回复| XML

这是图片 - http://resources.bigrock.in/affiliate/widgets/img/error_headers.jpg

1 个答案:

答案 0 :(得分:0)

您的问题是您没有将响应编码为JSON。无论你在标题中设置什么,都需要成为你回应内容的东西。此外,text/javascript并不是一个好用的标题。如果您只是想从该链接中回显html,那么它应该是text/html

以下是JSON的代码:

header("Content-Type: application/json");
//header("Content-Type: text/javascript");

$domain_name = $_GET['domain_name'];
$tld = $_GET['tld'];

$text = file_get_contents("http://www.some.com/some.php?action=caajax&domain_name=$domain_name&tld=$tld");
echo json_encode($text);