phonegap ajax调用获取错误'$未定义'

时间:2013-04-24 12:02:15

标签: javascript ajax cordova

我在Phonegap应用程序中发出了一个AJAX请求。代码是:

function remoteCall()
{
  alert("Remote call func called");

  try
  {
    $.ajax({
       url: 'http://192.168.1.200/testing/testConn.php',
       contentType: "application/json; charset=utf-8",
       dataType:"json",
       success: function(data)
       {
          if(data == '')
              alert("No data received from server");
          else
          alert("Data received from server = "+data.postcode);
       },
       error: function(jqXHR, textStatus, errorThrown)
       {
           console.log(textStatus);
           alert('FAIL !!!');
       },

     });
  }//end of try().
  catch(e)
  {
        alert("error = "+e.message);
  }

}//END OF FUNC remoteCall.

我还在<head>中添加了以下行以避免jQuery冲突。

<script>jQuery.noConflict();</script>

我的服务器端文件是:

<?php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: X-Requested-With");

$retArray = array();
$retArray['postcode']= 'm14';
$retArray['brand']= '1';
$retArray['product_type']= '1';

$jsondata =  json_encode($retArray);

return $jsondata;
?>

我收到第一条警告信息,但后来我收到错误,“$ is not undefined”。我不知道如何解决这个问题;有人可以帮忙吗?

我能够克服“$ is undefined”的错误,现在我没有收到任何错误,而且我没有得到任何输出......

3 个答案:

答案 0 :(得分:2)

确保在添加包含代码的js文件之前添加jquery文件。

答案 1 :(得分:1)

<script>jQuery.noConflict();</script>表示您必须将jQuery对象称为jQuery而不是$。将您的参考文献从$更改为jQuery,它应该有效。

http://api.jquery.com/jQuery.noConflict/

答案 2 :(得分:0)

我解决了我的问题...... :)

以下行解决了我的$和jQuery问题

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.7.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

(感谢Ali和cfs :))

在服务器文件中,我改变了返回echo

<?php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: X-Requested-With");

$retArray = array();
$retArray["postcode"]= "m14";
$retArray["brand"]= "1";
$retArray["product_type"]= "1";

$jsondata =  json_encode($retArray);
echo $jsondata;

?>

现在我可以获取服务器详细信息。

感谢所有回复....:)