1

我在 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;
?>

我收到第一条警报消息,但后来我收到错误消息,“$ 不是未定义的”。我不知道如何解决这个问题;谁能帮忙?

我能够克服“$未定义”的错误,现在我没有收到任何错误,也没有收到任何输出......

4

3 回答 3

2

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

于 2013-04-24T12:05:12.097 回答
1

<script>jQuery.noConflict();</script>意味着您必须将 jQuery 对象引用为jQuery而不是$. $将您的引用从to更改为jQuery它应该可以工作。

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

于 2013-04-24T12:05:11.520 回答
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>

(感谢阿里和cfs :))

在服务器文件中,我将返回更改为回显

<?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;

?>

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

感谢大家的回复.... :)

于 2013-04-25T11:48:04.527 回答