跨域问题之jsonp的实现

本文介绍了一种实现跨域请求的方法——JSONP,并提供了客户端和服务端的具体实现示例。客户端通过创建script标签并设置回调函数来发起请求,而服务端则返回带有回调函数名的JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jsonp是一种json数据的使用方式,可以实现不同域名之间的请求和发送数据。

客户端实现方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
         var flightHandler = function(data){
            alert(data);
     } 
         var url = "http://119.29.176.18/jsonp.php?jsoncallback=flightHandler";
      // 创建script标签,设置其属性
     var script = document.createElement('script');
     script.setAttribute('src', url);
    // 把script标签加入head,此时调用开始
     document.getElementsByTagName('head')[0].appendChild(script);

    </script>
</head>
<body>

</body>
</html>

服务器端实现方式:

<?php
header('Content-type: application/json');
//获取回调函数名
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);
//json数据
$json_data = '["customername1","customername2"]';
//输出jsonp格式的数据
echo $jsoncallback . "(" . $json_data . ")";
?>

jquery实现客户端:

jQuery(document).ready(function(){
        $.ajax({
             type: "get",
             async: true,
             url: "http://119.29.176.18/jsonp.php",
             dataType: "jsonp",
             jsonp: "jsoncallback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)     
             success: function(json){
                alert(json);
             },
             error: function(){
                 alert('fail');
             }
         });
     });

不正确之处还望指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值