使用fetch-jsonp进行跨域以及参数的传递

其实fetch-jsonp的官方文档里面已经写得很详细了,连接如下:https://github.com/camsong/fetch-jsonp;但是由于它本身没有多少demo,所以自己在上手的时候遇到了许多问题,比如说:传参;

首先,我有一个PHP文件需要跨域获取,如下(获取QQ信息):

<?php
header("Access-Control-Allow-Origin:*");
// 响应类型
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with, content-type');

function getKey($key, $default = "")
{
    return trim(isset($_REQUEST[$key]) ? $_REQUEST[$key] : $default);
}

$qq = getKey("qq");
if (!empty($qq) && is_numeric($qq) && strlen($qq) > 4 && strlen($qq) < 13) {
    $qqName = file_get_contents('http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=' . $qq);
    if ($qqName) {
        $qqName = mb_convert_encoding($qqName, "UTF-8", "GBK");
        echo $qqName;
    }
} else {
    echo 0;
}
 

 

jq的jsonp:

   $.ajax({
        method:"POST",
        url:"http://fm.xiaofany.com/APIpage/qq.php",
        data:{"qq":1393622322},
        dataType: "jsonp",
        jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
        jsonpCallback: "portraitCallBack",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
        success:data =>{
            console.log(data)
        },
        error:error =>{
            console.log(`error为${error.data}`)
    }
    })

获取到的数据如下:

1083235-20180323152304173-603454045.png

 

然后我用fetch-jsonp的时候,看它的源码,他是通过拼接script,传递src的方式来跨域的,于是只能是GET方法,但是如何传值呢,其实很简单,只需要在url后面拼接就可以啦:

        try {
            let getText = async () => {
                let promise = await fetchJsonp("http://fm.xiaofany.com/APIpage/qq.php?qq=789234894", {
                        jsonpCallbackFunction: 'portraitCallBack'
                    })
                ;
                let dataS = promise.json();
                dataS.then(data => {
                    console.log(data);
        
                })
            };
            getText()
        } catch (error) {
            console.log(`错误为${error}`)
        }
    }

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值