$ .ajax在浏览器中工作,但phonegap正在返回文件中的原始代码

时间:2014-03-12 20:47:23

标签: php android jquery ajax cordova

代码/ 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;
?>

3 个答案:

答案 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。

感谢所有回复。