Ajax call to return the php interface to return json data (required), ajaxjson

Source: Internet
Author: User

Ajax call to return the php interface to return json data (required), ajaxjson

The php code is as follows:

<?php  header('Content-Type: application/json');  header('Content-Type: text/html;charset=utf-8');  $email = $_GET['email'];  $user = [];  $conn = @mysql_connect("localhost","Test","123456") or die("Failed in connecting database");  mysql_select_db("Test",$conn);  mysql_query("set names 'UTF-8'");  $query = "select * from UserInformation where email = '".$email."'";  $result = mysql_query($query);  if (null == ($row = mysql_fetch_array($result))) {    echo $_GET['callback']."(no such user)";  } else {    $user['email'] = $email;    $user['nickname'] = $row['nickname'];    $user['portrait'] = $row['portrait'];    echo $_GET['callback']."(".json_encode($user).")";  }?>

The js Code is as follows:

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

Two problems are encountered:

1. First question:

Uncaught SyntaxError: Unexpected token:

The solution is as follows:

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 shocould have encoded the callback data, something like jQuery17209314005577471107_1335958194322 ({"foo": "bar "})

Here is the PHP code I used to achieve this, which degrades if JSON (without a callback) is used:

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

Hopefully that will help someone in the future.

2. Second question:

Parse json data. As you can see from the javascript above, I didn't use the jquery. parseJSON () Methods to start using these methods, but it always reports

VM219: 1 Uncaught SyntaxError: Unexpected token o in JSON at position 1 error. Later, the jquery. parseJSON () method is not used, but everything is normal. I don't know why.

The above ajax call returns the php interface to return json data (this document is required). This is all the content that I have shared with you. I hope you can give me a reference, we also hope that you can support the customer's home.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.