jsonp跨域

2023-11-18

由于浏览器的同源策略,前端请求存在跨域问题.jsonp解决跨域是利用了html的有些标签,例如script/link/img/iframe等的天生具有跨域请求的特点.例子如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="#" onfocus="this.blur();">测试</a>
</body>

<script type="text/javascript">
    function success(data){
        console.log("data===>",data);


    }
    // var script = document.createElement("script");
    // var url = "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=色戒&cb=success";
    // script.src=url;
    // document.body.append(script);
</script>

<script src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=色戒&cb=success">
</script>
</html>

需要注意:

1 <meta charset="UTF-8"> 不能省,会报错

2 上面是两种写法,动态创建标签和直接使用

3 回调函数必须是全局的,如下面使用jquery的ajax反例

Jsonp只支持get请求  浏览器地址输入方式都是get,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="#" onfocus="this.blur();">测试</a>
</body>
<script type="text/javascript" src="jquery-3.6.1.min.js"></script>
<script type="text/javascript">

    $.ajax({
        type:'GET',
        url:'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=大灰狼&cb=success',
        success:function success(data){
            console.log(data);
        }
    })
</script>

</html>

<!--报错如下图-->

<!--

下图共报了两个错.第一个是同源跨域错误,第二个是找不到success方法

-->

修改后:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="#" onfocus="this.blur();">测试</a>
</body>
<script type="text/javascript" src="jquery-3.6.1.min.js"></script>
<script type="text/javascript">
    function success(data){
        console.log(data);
    }
    $.ajax({
        type:'GET',
        dataType:'jsonp',
        url:'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=大灰狼&cb=success',
        success:function success(data){
            console.log(data);
        }
    })
</script>

</html>
<!--返回数据如下图-->

 

如果将url改成"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=大灰狼",也会报错,原因是返回数据格式问题,返回数据为

window.baidu.sug({q:"大灰狼",p:false,s:["大灰狼的故事 睡前故事","大灰狼和小白兔的故事睡前故事","大灰狼与小红帽的故事","大灰狼吃小羊的故事","大灰狼简笔画","大灰狼画报","大灰狼的拼音","大灰狼英语怎么读","大灰狼的名字叫什么","大灰狼拖走了羊妈妈,小羊为什么也不声不响地跟了去?"]});

另外,访问一些其他网站,如和风天气网站,就不需要前端做跨域jsonp处理,是因为网站后端做了处理,在返回的头中加了 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jsonp跨域 的相关文章

  • html 图像 src 调用 javaScript 变量

    这是我的代码 我想问 我怎样才能做到这一点 img src img apple 我一直在尝试使用 call 函数和 document onload 但它根本不起作用 有人可以救我吗 我假设你只是想用 javascript 更新图像 src
  • 纯 JS 相当于 Jquery eq()

    jquery 的纯等价物是什么eq 例如 我怎样才能实现 class1 class2 eq 0 text 1254 在纯 JavaScript 中 要获取数组中的元素索引 可以使用 在 JavaScript 中 因此 要重现您的代码 您可以
  • http和https在编程中有什么区别[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只知道 s 代表 安全 用户永远不
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • CSS如何制作可滚动列表

    我正在尝试创建一个由标题和标题下方的项目列表组成的网页 我希望项目列表可以垂直滚动 我还希望网页占据整个窗口 但不要更大 目前我的问题是项目列表不可滚动 而是延伸到窗口底部下方很远 这导致窗口可滚动 应该做什么CSS属性位于html bod
  • 什么可能导致 Firefox 中出现此 HTML/CSS 渲染问题?

    款式 h2 color 71D0FF font size 11px font weight bold margin 0px 0px 5px 0px a box color FFFFFF important cursor pointer di
  • 如何防止输入文本中出现“后重音”

    我相信这是一个简单的问题 但在谷歌上搜索几个小时后我找不到任何答案 也许我无法在搜索中使用正确的单词 P 我有一个 javascript 方法 可以防止用户用数字以外的其他字符填充文本框 如下面的代码所示 它在 KeyDown 事件中使用
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • jquery 中可点击 div 中的按钮

    我有整个 div 您可以单击它来切换该 div 的主要部分 问题是我在该 div 中也有可点击的按钮 当我点击它时 它会执行它应该做的事情 但同时也会切换整个 div 我怎样才能禁用它 Use event stopPropagation 单
  • 我应该如何实现将状态保存到 localStorage?

    CODE var React require react var Recipe require Recipe jsx var AddRecipe require AddRecipe jsx var EditRecipe require Ed
  • IE localStorage 事件失火

    在 Internet Explorer 9 和 10 中 localStorage 实现意外地触发事件 这里有很棒的线索 Chrome 的 localStorage 实现存在错误 https stackoverflow com questi
  • 将文本字段限制为仅包含数字的最佳方法?

    I m using the following Javascript to restrict a text field on my website to only accept numerical input and no other le
  • 在 Chrome 开发者工具中禁用调试器语句

    我正在尝试对恶意 JavaScript 进行逆向工程 当我最初加载侧面时 会注入 JS 代码 其中包括 debugger 语句并将断点注入我的 chrome 开发人员控制台 通过stackoverflow阅读 禁用所有断点does not帮
  • 从检查元素隐藏 ''

    我有这个 HTML 和 PHP 联系表
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 居中

    我的问题 http i56 tinypic com ff3jmo png http i56 tinypic com ff3jmo png 项目符号点未对齐 我要做的只是 text align center ing ul 所在的类 我可以对齐
  • 如何将项目插入到特定索引处的空数组中?

    我想将一个项目插入到空数组的指定索引中 我看到有 Array prototype splice 方法 但是 如果我在空数组上使用 splice 它只会添加项目来结束数组 如下所示 var a a splice 3 0 item 3 cons
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • 什么时候可以使用Javascript,什么时候不可以?

    不使用太多 javascript jquery 是个好习惯吗 我们应该尽可能避免它 为了良好的可访问性 吗 什么时候可以使用 JavaScript 什么时候不能在网页设计和开发中使用 JavaScript 在什么场景 什么条件下 Updat
  • html中锚标记中href和data-href的区别

    html中的href和data href属性有什么区别 a a 标签 我当前的代码写如下 a href verify phone process 1 html class btn btn default bubbla btn Sign In

随机推荐

  • 作为 Java初学者,刚学完JavaSE,有什么可以做的项目吗

    文章目录 一 基于面向对象开发的黑框程序 1 1 开发工具 1 2 至少掌握这些 1 3 推荐做的项目 二 Java SE 桌面窗体小程序 基本可以忽略 三 Java SE 高级应用 四 下节预告 Author Gorit Date 202
  • MybatisPlus使用Left Join...on...一对多多表联查和Ipage分页返回数据问题

    问题 一对多关系表使用MybatisPlus的Ipage进行分页查询 会先执行联表查询sql语句 然后进行分页 像图中联表查询一对多关系 会有多条重复数据 使用Ipage分页会将这10条数据返回到xml中resultMap绑定的type 造
  • windows下使用cpu进行mmsegmentation推理的环境配置

    背景介绍 需要将之前在ubuntu系统基于GPU训练的模型 复制到windows系统下用cpu进行测试推理 步骤如下 1 创建anconda虚拟环境 2 使用conda安装pytorch cpu以及对应的torchvision 这一步如果使
  • elementUI 日期组件 <el-date-picker type=“daterange“ > 时间范围遇到的问题 tips

    1 此组件默认展示两个日历框 并且两个日历框联动展示 2 若在同一日历中选择时间范围 只需将其联动解除 并隐藏右侧日历框 1 解除联动 标签中添加 unlink panels 属性即可 2 隐藏右侧日历 trbd date picker d
  • GO学习 --- 匿名函数

    一 匿名函数 Go支持匿名函数 如果我们某个函数只是希望使用一次 可以考虑使用匿名函数 匿名函数也可以实现多次调用 二 使用方式 方式一 在定义匿名函数时就直接调用 匿名函数 package main import fmt func mai
  • sas“安装后处理”失败的原因

    在安装sas软件时 最后一步会出现问题 如图 解决方法 1 SID过期 更新SID 或者更改计算机时间 用管理员身份运行 setup exe 在进行最后一步时 会有窗口弹出如下图 不要管它 PS 本人安装出错的原因不是SID过期 采用了第二
  • HTML编码与解码

    由于HTML是一种由符号标记的语言 所以该语言占用了一些表示的符号 而页面随时需要表示这些符号 所以HTML将一些被占用的符号或一些特殊功能的符号使用了一些特殊的方法标记 以便展示 这些方法就是HTML编码 HTML 中的预留字符必须被替换
  • js 给对象写 JSON.stringify 的方法

    但我们自己定义的对象 想要执行 JSON stringify 没法被序列化的属性就会产生报错 这时候应该用 toJson 来重写 具体代码是 object toJSON function return outputA a ouputB b
  • sqlite数据库处理大量数据(千万)

    先挖坑 连接 https www shuzhiduo com A VGzlVep15b
  • 5分钟学会创建微信小程序,超简单的入门指南

    小程序商城是一种在手机端直接购买商品的平台 它能够为商家提供便捷的销售渠道 并为消费者提供方便快捷的购物体验 要搭建一个小程序商城 我们可以通过乔拓云网进行操作 首先 我们需要登录乔拓云网的后台管理系统 在登录后台后 我们可以看到一个商城管
  • 解决 logback不打印 Mybatis SQL等相关日志 日志

    我使用的是 logback 1 2 3版本 其 maven 依赖如下
  • xd插件ui face

    简介 方便使用随机头像 使用 1 安装 略 2 在画布上画多个个圆圈 SHIFT CLICK画正圆 ALT CLICK复制 3 使用alt 框选全部的圆圈 4 对齐排列 5 如图点选 6 如图点选2 然后按 Apply 按钮
  • 【华为OD机试真题2023 JS】通信误码

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 通信误码 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 信号传播过程中会出现一些误码 不同的数字表示不同的误码ID 取值范围为1 65535 用一个数组记录误码出
  • 使用Jenkins自动部署vue项目

    1 Jenkins简介 Jenkins是开源CI CD软件领导者 提供超过1000个插件来支持构建 部署 自动化 满足任何项目的需要 2 Jenkins安装 这里是使用docker compose安装Jenkins 所以需要先安装docke
  • 2018-10-22心得

    gtest 今天学习使用了gtest gtest 主要使用方法就是在一个 TEST TEST F 里写测试用例 然后通过在main函数使用 RUN ALL TEST 即可运行 gtest 对于TEST F 实际跟TEST 基本一样 但是它多
  • 随机信号分析实验(matlab仿真实验)

    一 实验内容 1 产生均匀分布的随机数 高斯分布的随机数和其他分布 瑞利 卡方 的随机数及画图 对生成的随机数进行分析 2 检验 1 中产生的均匀分布 高斯分布的数学期望和方差 并画出各种分布的随机变量的概率密度直方图 3 两组及多组独立的
  • redis缓存的预热、降级、雪崩、穿透、击穿

    一 预热 指将一些可能经常使用数据在系统启动的时候预先设置到缓存中 这样可以避免在使用到的时候先去数据库中查询 还有一种方式就是添加一个缓存刷新页 这样通过人工干预的方式将一些可能为热点的key添加到缓存中 二 降级 当访问量突然剧增 服务
  • JS中定时器的用法以及窗口的滚动条函数

    在JS中定时器由setInterval函数设置 第一个参数为定时器的回调函数 第二个参数为间隔 单位为毫秒 窗口的滚动由window对象的scrollBy函数和scrollTo函数完成 例子如下
  • 通过安装cpolar内网穿透在Kali上实现SSH远程连接的步骤指南

    文章目录 1 启动kali ssh 服务 2 kali 安装cpolar 内网穿透 3 配置kali ssh公网地址 4 远程连接 5 固定连接SSH公网地址 6 SSH固定地址连接测试 简单几步通过cpolar 内网穿透软件实现ssh 远
  • jsonp跨域

    由于浏览器的同源策略 前端请求存在跨域问题 jsonp解决跨域是利用了html的有些标签 例如script link img iframe等的天生具有跨域请求的特点 例子如下 a href 测试 a