JSONP

JSONP ÊÇÒ»ÖÖÎÞÐ迼ÂÇ¿çÓòÎÊÌâ¼´¿É´«ËÍ JSON Êý¾ÝµÄ·½·¨¡£

JSONP ²»Ê¹Óà XMLHttpRequest ¶ÔÏó¡£

JSONP ʹÓà <script> ±êǩȡ¶ø´úÖ®¡£

JSONP ¼ò½é

JSONP Ö¸µÄÊÇ JSON with Padding¡£

´ÓÁíÒ»¸öÓòÇëÇóÎļþ»áÒýÆðÎÊÌ⣬ÓÉÓÚ¿çÓòÕþ²ß¡£

´ÓÁíÒ»¸öÓòÇëÇóÍⲿ½Å±¾Ã»ÓÐÕâ¸öÎÊÌâ¡£

JSONP ÀûÓÃÁËÕâ¸öÓÅÊÆ£¬²¢Ê¹Óà script ±êÇ©Ìæ´ú XMLHttpRequest ¶ÔÏó¡£

<script src="demo_jsonp.php">

Server Îļþ

·þÎñÆ÷ÉϵÄÎļþÔÚº¯Êýµ÷ÓÃÖзâ×°½á¹û£º

ʵÀý

<?php
$myJSON = '{ "name":"Bill Gates", "age":62, "city":"Seattle" }';
 
echo "myFunc(".$myJSON.");";
?>

ÏÔʾ PHP Îļþ

½á¹û·µ»Ø¶ÔÃûΪ "myFunc" µÄº¯ÊýµÄµ÷Óã¬ÆäÖÐµÄ JSON Êý¾ÝΪ²ÎÊý¡£

ÇëÈ·±£¿Í»§¶Ë´æÔڸú¯Êý¡£

JavaScript º¯Êý

º¯Êý "myFunc" λÓÚ¿Í»§¶Ë£¬ÓÃÓÚ´¦Àí JSON Êý¾Ý£º

ʵÀý

function myFunc(myObj)  {
    document.getElementById("demo").innerHTML =  myObj.name;
}

Ç××ÔÊÔÒ»ÊÔ

´´½¨¶¯Ì¬½Å±¾±êÇ©

ÉÏÀý»áÔÚÒ³Ãæ¼ÓÔØÊ±Ö´ÐÐ "myFunc" º¯Êý£¬¸ù¾ÝÄú·ÅÖýű¾±êÇ©µÄλÖã¬ÕâÑù²»ºÜÁîÈËÂúÒâ¡£

Script Ö»Ó¦¸ÃÔÚÐèҪʱ´´½¨£º

ʵÀý

ÔÚ°´Å¥±»µã»÷ʱ´´½¨ºÍ²åÈë <script> ±êÇ©£º

function clickButton() {
    var s = document.createElement("script");
    s.src = "demo_jsonp.php";
    document.body.appendChild(s);
}

Ç××ÔÊÔÒ»ÊÔ

¶¯Ì¬ JSONP ½á¹û

ÉÏÀýÈÔÈ»ÊǾ²Ì¬µÄ¡£

¿Éͨ¹ýÏò PHP Îļþ·¢ËÍ JSON À´´´½¨¶¯Ì¬µÄÀý×Ó£¬È»ºó¸ù¾ÝÕâ¸ö php Îļþ»ñµÃµÄÐÅÏ¢ÈÃËü·µ»ØÒ»¸ö JSON ¶ÔÏó¡£

PHP Îļþ

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =  json_decode($_GET["x"], false);
 
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);

echo "myFunc(".json_encode($outp).")";
?>

PHP Îļþ½âÊÍ£º

  • °ÑÇëÇóת»»Îª¶ÔÏó£¬Ê¹Óà PHP º¯Êý json_decode()¡£
  • ·ÃÎÊÊý¾Ý¿â£¬²¢Óñ»ÇëÇóµÄÊý¾ÝÌî³äÊý×é¡£
  • Ïò¶ÔÏóÌí¼ÓÊý×é¡£
  • ʹÓà json_decode() º¯Êý°Ñ¸ÃÊý×éת»»Îª JSON¡£
  • Óà "myFunc()" ·â×°·µ»Ø¶ÔÏó¡£

JavaScript ʵÀý

½«´Ó php Îļþµ÷Óà "myFunc" º¯Êý£º

function clickButton() {
    var obj, s
    obj = { "table":"products", "limit":10 };
    s =  document.createElement("script");
    s.src = "jsonp_demo_db.php?x="  + JSON.stringify(obj);
    document.body.appendChild(s);
 }
function myFunc(myObj)  {
    var x, txt = "";
    for (x in myObj)  {
        txt += myObj[x].name + "<br>";
     }
    document.getElementById("demo").innerHTML = txt;
}

Ç××ÔÊÔÒ»ÊÔ

»Øµ÷º¯Êý

Èç¹ûÄúÎÞ·¨¿ØÖÆ·þÎñÆ÷Îļþ£¬ÄÇôÈçºÎʹ·þÎñÆ÷Îļþµ÷ÓÃÕýÈ·µÄº¯ÊýÄØ£¿

ÓÐʱ·þÎñÆ÷ÎļþÌṩ»Øµ÷º¯Êý×÷Ϊ²ÎÊý£º

ʵÀý

PHP Îļþ»áµ÷ÓÃÄú×÷Ϊ»Øµ÷²ÎÊý´«µÝµÄº¯Êý£º

function clickButton() {
    var s = document.createElement("script");
    s.src = "jsonp_demo_db.php?callback=myDisplayFunction";
    document.body.appendChild(s);
}

Ç××ÔÊÔÒ»ÊÔ

VUE