下面的代码使用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";
}?>
有人看错了吗?
感谢。
答案 0 :(得分:1)
我使用Firebug检查请求和响应 - 当您直接从浏览器调用URL而不是通过XHR时,请检查URL和标题是否相同。
答案 1 :(得分:0)
我不确定但是:
尝试确保您的主应用程序正确执行PHP,JavaScript可以提取源代码似乎很奇怪。
尝试在die()
或echo true
之后添加:echo false
,这会阻止它进一步发展。
我说检查更大的应用程序执行PHP的原因是因为它几乎看起来像是Web服务器将源代码呈现为html而不是通过解释器运行它。