代码/ app / repository位于Zend Server上。我更新它然后使用git将其推送到github然后使用phonegap build来构建应用程序。当我在指向Zend Server的浏览器中测试代码时它正常工作,我得到的结果是#34; 12345"。推出新代码后,构建应用程序,在我的Nexus 7上更新它并运行应用程序我得到了一个疯狂的结果:
"12345","4746904837" =>"99999","047469048372" =>"88888");foreach ($data as $key => $value){if($key===$qs){$returnData = $value;}}echo $returnData;?>
为什么它会在匹配值之后给我所有的脚本?
$ .ajax电话
$.ajax({
url: "php/test.php",
data: "qs=9114901075742714812669",
datatype: "text"
})
.done(function( returnData ) {
console.log(returnData);
$( "#info" ).append( returnData );
});
php
<?php
$qs = $_GET['qs'];
$data = array(
"9114901075742714812669" =>"12345",
"4746904837" =>"99999",
"047469048372" =>"88888"
);
foreach ($data as $key => $value){
if($key===$qs){
$returnData = $value;
}
}
echo $returnData;
?>
答案 0 :(得分:2)
AJAX调用与任何其他调用一样是HTTP请求。如果某个JS发出呼叫,或者您在浏览器的地址栏中输入了网址,那么网络服务器没有实际的区别。如果您正在获取代码而不是输出,那么您的服务器就会出现问题。
您的浏览器很可能也会返回代码,但<?
会导致它被解释为未知的HTML标记:
<?php
^--- start of "html"
"9114901075742714812669" =>"12345",
^-- end of "html" tag
再次点击浏览器中的地址并执行“查看源代码” - 您可能会看到所有的PHP源代码。
答案 1 :(得分:1)
听起来你的服务器没有执行php代码但返回php文件的文本。如果你替换
$( "#info" ).append( returnData );
与
$( "#info" ).text( returnData );
你发现你的php脚本的所有文本都被返回了。
答案 2 :(得分:0)
感谢您的回复。问题在于与尝试同时学习许多事物有关的新闻说服。 ajax调用指向我的github存储库中的php脚本......所以这永远不会有效。我修好了,它现在指向服务器。
我在修复它时确实学到了一个非常重要的课程。
使用PhoneGap并执行ajax请求时,请确保在url中包含http://,否则它将尝试调用file://php/test.php。
感谢所有回复。