Home > Backend Development > PHP Tutorial > The ajax call returns the php interface and returns the json data ajax jsonp ajax json instance ajax gets the background json number

The ajax call returns the php interface and returns the json data ajax jsonp ajax json instance ajax gets the background json number

WBOY
Release: 2016-07-29 08:49:21
Original
1187 people have browsed it

php code is as follows:

<span><?php
</span>header(<span>'Content-Type: application/json'</span>);
    header(<span>'Content-Type: text/html;charset=utf-8'</span>);

    <span>$email </span><span>= </span><span>$_GET[</span><span>'email'</span><span>]</span>;

    <span>$user </span><span>= </span><span>[]</span>;

    <span>$conn </span><span>= @</span>mysql_connect(<span>"localhost"</span>,<span>"Test"</span>,<span>"123456"</span>) <span>or die</span>(<span>"Failed in connecting database"</span>);
    mysql_select_db(<span>"Test"</span>,<span>$conn</span>);
    mysql_query(<span>"set names 'UTF-8'"</span>);
    <span>$query </span><span>= </span><span>"select </span><span><em>*</em></span><span> from UserInformation where email = '"</span><span>.</span><span>$email</span><span>.</span><span>"'"</span>;
    <span>$result </span><span>= </span>mysql_query(<span>$query</span>);
    <span>if </span>(<span>null </span><span>== </span>(<span>$row </span><span>= </span>mysql_fetch_array(<span>$result</span>))) <span>{
</span><span>echo </span><span>$_GET[</span><span>'callback'</span><span>]</span><span>.</span><span>"(no such user)"</span>;
    <span>} </span><span>else </span><span>{
</span><span>$user[</span><span>'email'</span><span>] </span><span>= </span><span>$email</span>;
        <span>$user[</span><span>'nickname'</span><span>] </span><span>= </span><span>$row[</span><span>'nickname'</span><span>]</span>;
        <span>$user[</span><span>'portrait'</span><span>] </span><span>= </span><span>$row[</span><span>'portrait'</span><span>]</span>;
        <span>echo </span><span>$_GET[</span><span>'callback'</span><span>]</span><span>.</span><span>"("</span><span>.</span>json_encode(<span>$user</span>)<span>.</span><span>")"</span>;
    <span>}
</span><span>?></span>
Copy after login
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>
Copy after login

Encountered two problems:

1. The first problem:

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 should have included 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:

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

Hopefully that will help someone in the future.

2. The second question:

Parse json data. As you can see from the above javascript, I did not use the jquery.parseJSON() methods. I started using these methods, but the error

VM219:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1

was always reported. , later I didn’t use the jquery.parseJSON() method, but everything was normal. Do not know why.

The above introduces how the ajax call returns the php interface and returns json data, including the content of ajax and json. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template