这是我创建的小部件 - 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
答案 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);