dojo.xhrGet返回PHP源代码,而不是文本响应

时间:2011-08-22 14:51:17

标签: php javascript dojo

下面的代码使用dojo.xhrGet方法调用PHP文件以获取真或假文本结果。当我自己加载PHP文件(替换$ variable = $ _GET(“passedVariable”);使用硬连线值)时,它在我的浏览器窗口中正确生成“true”或“false”。但是,当我在我的大型Web应用程序中运行调用时,它返回PHP源代码而不是我的数据库查询的结果。使用JQuery的.get()方法,我收到一个XML对象。

这是Javascript ...

dojo.xhrGet({
                    url: "php/check.php",
                    handleAs: "text",
                    content: {guid: featureGuid},
                    load: function(response){
                            alert(response);
                            dojo.style(dojo.byId("photoLink"), "display", "");
                            }
                });

这是PHP ...

<?php

$guid = $_GET["guid"];

// Connect to Database
$server = "server";     
$connectionSettings = array("Database"=>"db", "UID"=>"uid", "PWD"=>"pwd");
$connection = sqlsrv_connect($server, $connectionSettings);

if (!$connection){
    die("Failed Connection");
}

// Prepare and Execute query
$sql = "sql";
$results = sqlsrv_query($connection, $sql);

if ($results){
    $rows = sqlsrv_has_rows( $results );
    if ($rows === true) {
        header('Content-Type: text/plain');
        echo "true";
    }
    else {
        header('Content-Type: text/plain');
        echo "false";
    }
}
else{
    header('Content-Type: text/plain');
    echo "false";
}?>

有人看错了吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我使用Firebug检查请求和响应 - 当您直接从浏览器调用URL而不是通过XHR时,请检查URL和标题是否相同。

答案 1 :(得分:0)

我不确定但是:

  1. 尝试确保您的主应用程序正确执行PHP,JavaScript可以提取源代码似乎很奇怪。

  2. 尝试在die()echo true之后添加:echo false,这会阻止它进一步发展。

  3. 我说检查更大的应用程序执行PHP的原因是因为它几乎看起来像是Web服务器将源代码呈现为html而不是通过解释器运行它。