>  기사  >  백엔드 개발  >  Ajax는 json 데이터를 반환하기 위해 return php 인터페이스를 호출하는 방법을 구현합니다.

Ajax는 json 데이터를 반환하기 위해 return php 인터페이스를 호출하는 방법을 구현합니다.

墨辰丷
墨辰丷원래의
2018-05-23 09:33:503229검색

이 글은 주로 반환 PHP 인터페이스를 호출하고 json 데이터를 반환하는 ajax 구현 방법을 소개합니다. 관심 있는 친구들이 참고하면 좋겠습니다.

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 :

해결책은 다음과 같습니다.

이것은 방금 나에게 일어났으며 그 이유는 위의 이유가 아닙니다. 저는 jQuery 명령 getJSON을 사용하고 JSONP를 사용하기 위해 callback=?을 추가했으며(도메인 간 이동이 필요했기 때문에) JSON 코드 {"foo":"bar"}를 반환하고 오류가 발생했습니다.

이것은 jQuery17209314005577471107_1335958194322({"foo":"bar"})

이것을 달성하기 위해 사용한 PHP 코드는 다음과 같습니다. JSON(콜백 없이)을 사용하면 성능이 저하됩니다.

$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; 
}

나중에 누군가에게 도움이 되기를 바랍니다.

2. 두 번째 질문:

json 데이터를 구문 분석합니다. 위 자바스크립트에서 볼 수 있듯이 jquery.parseJSON() 메서드를 사용하지 않고 이 메서드를 사용하기 시작했는데 항상

VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1 오류가 보고되었습니다. 나중에 jquery.parseJSON() 메서드가 없으면 모든 것이 잘 작동합니다. 이유를 모르겠어요.

관련 권장 사항:

php_php 기본의 ini 구성 원칙에 대한 자세한 설명

php 형식의 json 함수 샘플 code_php 기술

php_php 기본에서 {} 중괄호의 의미는 무엇입니까

위 내용은 Ajax는 json 데이터를 반환하기 위해 return php 인터페이스를 호출하는 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.