首頁 >後端開發 >php教程 >ajax實作呼叫返回php介面返回json資料的方法

ajax實作呼叫返回php介面返回json資料的方法

墨辰丷
墨辰丷原創
2018-05-23 09:33:503255瀏覽

本篇文章主要介紹ajax實作呼叫回傳php介面回傳json資料的方法,有興趣的朋友參考下,希望對大家有幫助。

php程式碼如下:

#
<?php

  header(&#39;Content-Type: application/json&#39;);
  header(&#39;Content-Type: text/html;charset=utf-8&#39;);

  $email = $_GET[&#39;email&#39;];

  $user = [];

  $conn = @mysql_connect("localhost","Test","123456") or die("Failed in connecting database");
  mysql_select_db("Test",$conn);
  mysql_query("set names &#39;UTF-8&#39;");
  $query = "select * from UserInformation where email = &#39;".$email."&#39;";
  $result = mysql_query($query);
  if (null == ($row = mysql_fetch_array($result))) {
    echo $_GET[&#39;callback&#39;]."(no such user)";
  } else {
    $user[&#39;email&#39;] = $email;
    $user[&#39;nickname&#39;] = $row[&#39;nickname&#39;];
    $user[&#39;portrait&#39;] = $row[&#39;portrait&#39;];
    echo $_GET[&#39;callback&#39;]."(".json_encode($user).")";
  }

?>

js程式碼如下:

<script>
    $.ajax({
      url: "http://test.localhost/UserInterfaceForChatroom/UserInformation.php?email=pshuyue@gmail.com",
      type: "GET",
      dataType: &#39;jsonp&#39;,
      //      crossDomain: true,
      success: function (result) {
        //        data = $.parseJSON(result);
        //        alert(data.nickname);
        alert(result.nickname);
      }
    });
  </script>

#其中遇到了兩個問題:

1、第一個問題:


#Uncaught SyntaxError: Unexpected token :

#解決方案如下:

This has just happened to me, and the reason was none of the reasons above. I was using the jQuery command getJSON and adding callback=? to use JSONP (as I needed to go cross-domain), and returning the JSON code {"foo":"bar"} and getting the error.

This is because I should have included the callback data, something like jQuery17209314005577471107_1335958194322({"foo":"bar"})

Here is the PHP code I used to achieve this, which degrades 是

$ret[&#39;foo&#39;] = "bar";
finish();

function finish() {
  header("content-type:application/json");
  if ($_GET[&#39;callback&#39;]) {
    print $_GET[&#39;callback&#39;]."(";
  }
  print json_encode($GLOBALS[&#39;ret&#39;]);
  if ($_GET[&#39;callback&#39;]) {
    print ")";
  }
  exit; 
}

Hopefully that will help someone in the future.

2、第二個問題:

#解析json資料。從上面的javascript可以看到,我沒有使用jquery.parseJSON()這些方法,開始使用這些方法,但是總是會報

VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1的錯誤,後來不用jquery.parseJSON()這個方法,反而一切正常。不知為何。

相關推薦:

php中的ini配置原理詳解_php基礎


php格式化json函數範例程式碼_php技巧


php中{}大括號是什麼意思_php基礎


##

以上是ajax實作呼叫返回php介面返回json資料的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn