JSONP使用笔记

2020-12-13 16:11

阅读:461

标签:style   blog   http   java   color   get   

 JSONP

  JSONP是实现跨域GET请求的一种方法, 原理上利用script标签可以动态加载JS文件,

将不同源站点的JSON数据加载到本网站来,如果给定回调函数,将回调函数名传递到服务器端,

在服务器端生成 此函数以JSON数据为入参的调用语句,就为一般AJAX实现的getJSON接口。

getJSON接口如果请求URL与当前URL一致,则为一般网站访问。

 

下文给出详尽的解释

http://www.cnblogs.com/yuzhongwusan/archive/2012/12/11/2812849.html

 

实验

jsonpServer.php

php
$jsondata = "{symbol:‘IBM‘, price:120}";  
echo $_GET[‘callback‘].‘(‘.$jsondata.‘)‘; 
?>

 

 

jsonpClient.html

html>
head> 
        script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">script>
        style>

        style>
head> 
body>
        h1>hello world!h1>
         input type="text" value="test"/>
         input type="button" value="button"/>
         script type=‘text/javascript‘> 
            $("[type=‘button‘]").click(function(){
                //JQuery JSONP Support  
                var url = "http://127.0.0.1/jsonpServer.php?callback=?";  
                $.getJSON(url, function(data){  
                    var retMsg = "Symbol:" + data.symbol + ", Price:" + data.price;  
                    $("[type=‘text‘]").val(retMsg);
                }); 
            })
        script>
body>
html>

 

 

客户端用户访问 http://localhost/jsonpClient.html,  

点击按钮,发起JSONP请求,

GET http://127.0.0.1/jsonpServer.php?callback=jQuery18305268568145111203_1403193771906&_=1403194058203 HTTP/1.1
Host: 127.0.0.1
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
Referer: http://localhost/jsonpClient.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8,en-GB;q=0.6,en;q=0.4

服务器端响应内容为,可见$.getJSON检测URL中有callback=?, 表示将第二个参数作为回调函数,

但是第二个函数为 匿名函数, 所以就给此函数重命名一个复杂长串, 以备响应时候触发调用。 

HTTP/1.1 200 OK
Date: Thu, 19 Jun 2014 16:07:38 GMT
Server: Apache/2.4.7 (Win32) OpenSSL/0.9.8y PHP/5.4.25
X-Powered-By: PHP/5.4.25
Content-Length: 67
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

jQuery18305268568145111203_1403193771906({symbol:‘IBM‘, price:120})

 

 

 

 

 

 

JSONP使用笔记,搜素材,soscw.com

JSONP使用笔记

标签:style   blog   http   java   color   get   

原文地址:http://www.cnblogs.com/lightsong/p/3798412.html


评论


亲,登录后才可以留言!