ajax跨域jsonp使用以及安全性

在Ansys Mechanical中对磨损进行建模 在有限元分析中,磨损是通过移动接触表面上的节点来复制材料侵蚀来建模的。仿真迭代更新几何,并在每次更新后重新计算平衡,使过程成为非线性的。Ansys使用将压力、相对运动和材料阻力与表面损失联系起来的经验定律来处理连续介质尺度的磨损。要在Ansys Mechanical中激活磨损建模,必须使用TB,WEAR命令定义专用材料模型。该命令与 TBDATA 相结合,允许用户输入与磨损相关的材料常数,以控制磨损的计算方式以及在接触表面上的应用方式。 阅读详情

使用jsonp跨域:
jsonp原理:通过创建一个 script 标签,将 src 设置为目标请求,插入到 dom 中,服务器接受该请求并返回数据,数据通常被包裹在回调钩子中
jsonp不支持POST方式;

//客户端
$.ajax({
            // url:'http://wenjunlin.xyz/api/v2/index',
            url:'http://bisheapi.cn/api/v2/index',
            type:'post',
            data:{
                'id':4,
                't':'wen'
            },
            dataType:'jsonp',
            jsonp: "jsonpcallback", //服务端用于接收callback调用的function名的参数
            crossDomain:true,
            success:function (data) {
                // data = JSON.parse(data);
                console.log(data)
            },
            error:function (XMLHttpRequest, textStatus, errorThrown) {
                // console.log(code);
                console.log('XMLHttpRequest.status: '+ XMLHttpRequest.status);
                console.log('XMLHttpRequest.readyState: '+ XMLHttpRequest.readyState);
                console.log('textStatus: '+ textStatus);
                console.log('errorThrown: '+errorThrown);
            }
        });

php服务端:

public function index(){
    $id = 1;
    $t = 't';

    $id = $_GET['id'];
    $t = $_GET['t'];
    $jsonp = $_GET['jsonpcallback'];//get接收jsonp自动生成的函数名

    $arr = array(
        'id' => $id,
        't' => $t
    );
    echo $jsonp.'('. json_encode($arr). ')'; //jsonp函数名包裹json数据
}

使用ajax也是可以进行跨域的,只不过需要在跨域的服务端设置一下Access-Control-Allow-Origin

//客户端
$.ajax({
            url:'http://bisheapi.cn/api/v2/indexshow',
            type:'get',
            data:{
                'id':4,
                't':'wen'
            },
            dataType:'json',
            success:function (data) {
                console.log(data)
            },
            error:function (XMLHttpRequest, textStatus, errorThrown) {
                console.log('XMLHttpRequest.status: '+ XMLHttpRequest.status);
                console.log('XMLHttpRequest.readyState: '+ XMLHttpRequest.readyState);
                console.log('textStatus: '+ textStatus);
                console.log('errorThrown: '+errorThrown);
            }
        });

服务端代码:

 public function show(){
        header("Access-Control-Allow-Origin: *");
        $id = 1;
        $t = 't';

        $arr = array(
            'id' => $id,
            't' => $t
        );
        echo json_encode($arr);
    }

与jsonp不一样,该方式可以使用get,post等方式访问。

jsonp安全性研究:https://blog.youkuaiyun.com/jian_xi/article/details/66474717

防止xss攻击案例如下:
客户端代码

$.ajax({
            // url:'http://wenjunlin.xyz/api/v2/index',
            url:'http://bisheapi.cn/api/v2/index',
            type:'post',
            data:{
                'id':4,
                't':'wen'
            },
            dataType:'jsonp',
            jsonp: "jsonpcallback", //服务端用于接收callback调用的function名的参数
            jsonpCallback:'alert(123)',//xss攻击
            crossDomain:true,
            success:function (data) {
                // data = JSON.parse(data);
                console.log(data)
            },
            error:function (XMLHttpRequest, textStatus, errorThrown) {
                // console.log(code);
                console.log('XMLHttpRequest.status: '+ XMLHttpRequest.status);
                console.log('XMLHttpRequest.readyState: '+ XMLHttpRequest.readyState);
                console.log('textStatus: '+ textStatus);
                console.log('errorThrown: '+errorThrown);
            }
        });

后台处理:

        $id = $_GET['id'];
        $t = $_GET['t'];
//        $callback = $_GET['jsonpcallback'];//get接收jsonp自动生成的函数名
        //更安全
        $callback = urlencode($_GET['jsonpcallback']);

        $arr = array(
            'id' => $id,
            't' => $t,
            'str' => "window[decodeURIComponent('{$callback}')]"
        );
//        echo $jsonp.'('. json_encode($arr). ')'; //jsonp函数名包裹json数据
        echo "window[decodeURIComponent('{$callback}')](".json_encode($arr).");";
避坑指南:STM32F4的ADC采样FSR传感器,如何稳定读数并校准压力值? 本文详细解析了STM32F4的ADC采样FSR薄膜压力传感器时遇到的读数不稳定和非线性校准问题,提供了从硬件配置到软件滤波的完整解决方案。通过优化ADC设置、改进滤波算法和实施分段线性校准,帮助工程师实现高精度压力测量,特别适用于智能手套和医疗监测等应用场景。 阅读详情

相关推荐

树莓派3-改装wifi外置天线

声明:本文只是技术性探讨,改装引起的产品损坏等后果,由用户自负! 改装主要有两种方法 方法一:直接替换原来的天线 1、移除原有的小陶瓷天线,就在Made in PRC(或UK)那边的那个 清理一下阻焊剂方便天线接地(图中PRC左侧) 2、焊接天线 天线的屏蔽层焊接到清理完阻焊剂的地方,中间的信号线焊接到PRC右侧焊盘。 3、最终的样子

huayucong的博客 2万+

使用ajax返回json数据应注意的几点问题

先说结论: 1、触发的action函数不要以get开头 2、不需要构造成json数据的变量,尽量不要提供get方法 3、动作类函数不要以get开头 4、所有要构造成json的get返回对象都要序列化 原因: 重要特性: 函数执行完毕后会调用action类中所有get开头的函数构造json数据 1、触发action函数返...

tianyangwww的博客 213

手把手教你用TL431设计反激电源补偿器(附波特图调试技巧)

本文详细介绍了如何使用TL431设计反激电源补偿器,并提供了波特图调试技巧。通过实战经验分享,帮助工程师快速掌握补偿网络设计、分压电阻计算和稳定性判据,避免常见设计误区,提升电源稳定性与效率。

weixin_29201859的博客 377

Ajax:ajax实现跨域解决方案jsonp

才发送请求,然后执行servlet,servlet给它响应一段js代码回去,它接收到js代码解释并执行,显示效果,它并没有达到局部刷新的效果,我们让它达到局部刷新的效果,我们点击某一个按钮,我们让它局部刷新,显然上面让页面打开的时候加载script标签就不行了,我们可以让他先加载完,点击页面某一个按钮去加载script标签,来达到页面的局部刷新,整个过程跟ajax没有关系。当out.print("sayHello({\"name\"\"jackson\"})")重新刷新页面响应成功。......

dengfengling999的博客 1539

用示波器抓一次MIPI D-PHY的波形,手把手教你读懂HS模式和LP模式的切换时序

本文详细解析了MIPI D-PHY信号的双模切换机制,包括高速模式(HS)和低功耗模式(LP)的波形捕获与诊断技巧。通过示波器设置、关键状态分析和实战案例,帮助工程师快速定位信号完整性问题,提升调试效率。

weixin_30696427的博客 455

ComfyUI中一个超好用的变量管理类节点-KJNodes

在AI绘图中,ComfyUI的热度开始慢慢起来一些,但是这个软件在使用的过程中,需要很多连线,仅仅一个最简单的动画生成,就需要连接这么多线条,而且有些线会飞的很远,看起来就很不美观,尤其是一些复杂工作流,连接到最后自己可能已经分不太清楚到底连接好了没有。今天在研究C站的大佬们的工作流的时候,发现一个有意思的工作流,看起来大概是这种感觉:干净整洁。他用到了KJNodes这么个节点来管理变量,git上星标也不算很多,所以我想很多朋友可能还不知道,所以这里简单介绍下用法。

聚梦小课堂 7520

AJAX基本知识,解决跨域(JSONP和CORS)

ajax相关知识

m0_59411260的博客 676

AF驱动调试日志全解析:从配置到问题排查

本文全面解析AF驱动调试日志的配置、抓取与分析方法。从内核驱动与HAL层配置入手,确保日志正常输出,并详细解读开机初始化、马达识别、I2C通信等关键日志节点。通过多个实战案例,如对焦失败、前摄无功能、参数不生效及I2C报错等,系统性地展示了如何利用日志定位并解决AF对焦问题,是摄像头模组开发与调试的实用指南。

weixin_28285943的博客 305

【Ajax进阶】跨域和JSONP的学习

如果两个页面的协议,域名和端口都相同,则两个页面具有相同的源。例如,下表给出了相对于http://www.test.com:80/index.html 端口号不写,默认为80.。http(协议)www.test.com (域名)80 (端口)同源策略(英文全称 Same origin policy)是浏览器提供的一个安全功能。MDN官方给定的概念:同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要安全机制。

m0_62360527的博客 1481

螺丝锁付系统软件设计 C# Winform

视觉螺丝锁付系统软件设计 C# Winform ,这是其中通信子模块设计

weixin_42522973的博客 340

项目管理 Agent:进度追踪与风险预警 Harness

我们先从LangChain的Agent定义说起:Agent是一个能感知环境、自主决策、调用工具、执行动作、迭代反思的智能实体。而「项目管理全自主Agent」,就是把Agent的核心能力和项目管理的五大过程组(启动、规划、执行、监控、收尾)深度结合,聚焦执行监控阶段的两个核心痛点:进度偏差自动化计算、风险信号自动化识别与预警的专门化Agent。全感知(Omnisensing):能从。

AI架构师小马 515

Ajax跨域请求之同源政策、跨域请求 & 实现跨域请求之jsonp原理、jQuery实现跨域请求、CORS跨域 & XML格式-过时 & ajax请求遵循http协议

axios

weixin_44867717的博客 710

【第48例】BLM模型之市场洞察-五看工具篇(一)

BLM市场洞察

产品线负责人 2109

AJAX、JSONP和CORS

学习了数据交互行为的时候了解了AJAX和JSONP。(JSONP和HTML5是“同时代”的,尽管它没有在HTML5规范中定义,但是在HTML5的应用中大量使用,它是构建Web应用的一个核心应用。) 运用AJAX进行数据交互就会不可避免的面临两个问题。第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决? 这两个问题都有不同的解决方案,数据可以用自定义字符串或者用XML来描述

fanlulu2015的博客 515

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【同源跨域】---解决ajax跨域问题的三种解决方案

“同源”:协议相同、域名相同、端口相同。“同源的目的” :只有在一个服务器上的文件才能互相交互,多个服务器之间的文件禁止1995年,同源政策由Netscape公司引入浏览器,最初的目的是某页面所设置的cookie,只能由其“同源”页面打开。如果两个页面拥有相同的协议、域名和端口,那么这两个页面就属于同一个源,其中只要有一个不相同,就是不同源。举例来说,这个网址,协议是,域名是,端口是(默认端口可以省略)。它的同源情况如下。目的:同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。限制:随着互联

weixin_48813932的博客 2107

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复习ajax的三种跨域方式

ajx请求 跨域的方式 1, 服务器代理方式 1,找到配置文件,设定代理内容,必须按照固定的语法格式 location = /dt { proxy_pass https://www.duitang.com/napi/blog/list/by_filter_id/; } location = /dt ...

DcTbnk的博客 479

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Ajax-跨域

一个域名地址的组成: 当协议、子域名、主域名、端口号中任意一个不同时,都算做不同域,不同域之间相互请求资源,就算做“跨域”。跨域解决方法: 1、代理(后台解决); 2、JSONP(针对 GET 方式); 3、XHR2(IE10以下不支持)。JSONP还是上文中的案例,当把GET方法中请求的url由”http://localhost/ajaxdemo/server.php“改为”http:

Della_UI的博客 444

跨域方案JSONP与CORS的各自优缺点以及应用场景

转自 https://www.zhihu.com/question/41992168/answer/217903179 首先明确:JSONP与CORS的使用目的相同,并且都需要服务端和客户端同时支持,虽然功能上讲CORS更为强大,但是需要根据应用场景选择使用哪一个。 1、JSONP(json with padding 填充式json),利用了使用src引用静态资源时不受跨域限制的机制。主要...

weixin_30747253的博客 151

jquery:利用jsonp跨域访问

客户端的跨域访问,可以通过jsonp方式来实现,jquery提供了跨域访问的方法, jQuery.ajax()支持get方式的跨域。当然支持跨域还需要服务器端相应的处理。 [code="js"] $.ajax({ async:false, url: '', // 跨域URL ...

脉兜 157

有关ajax跨域问题

写在前面 JQuery ajax支持get方式的跨域,采用了jsonp来完成。完成跨域请求的有两种方式实现。一种是使用Jquery ajax最底层的Api实现跨域的请求,而另一种则是JQuery ajax的高级装。 一、使用Jquery ajax方式 $.ajax({ url:'http://www.mysite.com/demo.do', // 跨域URL typ...

91

NodeJ node.js Jquery Ajax 跨域请求

Jquery + Ajax 跨域请求 说白了就是前台请求ajax数据(JSON)但是请求的数据不在本地的绝对路径下,接口数据 是没有这个安全性的我对外公开的接口数据,只要你找到接口你就可以使用里面的数据 ,但是在浏览器端他做了一套机制就是 不让你随意的访问别人服务器的外来接口,如果是好的数据的化 你可以学习使用,如果是一些恶意数据,对服务器对个人来说都是没有安全性的,目前明白一点就是...

记得我所记得的 302

jQuery 之 jsonp跨域原理

http://www.jquerycn.cn/content/20130905/4823.html 浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时地都要疼上一疼.记得很久以前使用iframe 加script domain 声明,yahoo js util 的方式解决二级域名跨域访问的问题. 时间过得好快,又被拉回js战场时, 跨域问题这个...

LIXG425的专栏 198

SSO(四) cas ajax + jsonp实现跨域登录

之前的文章里介绍过通过GET的方式访问cas的登陆页,该页面实现自动提交,

fish的专栏 7777

jQuery 跨域访问问题解决方法

http://www.jb51.net/article/21213.htm 浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时地都要疼上一疼.记得很久以前使用iframe 加script domain 声明,yahoo js util 的方式解决二级域名跨域访问的问题.  时间过得好快,又被拉回js战场时, 跨域问题这个伤疤又开疼了.

蛰脚踝的天蝎 875

探秘 AJAX:让网页变得更智能的异步技术(下)

AJAX 的优点和应用场景如下:通过异步请求和局部更新,可以减少页面的刷新和加载时间,提高了用户的使用体验。通过在客户端进行数据处理和验证,可以减少服务器端的负载。可以在不刷新整个页面的情况下,与服务器进行异步通信,提高了应用程序的响应速度和性能。表单验证:在表单提交之前,可以使用 AJAX 技术在客户端进行验证,以减少服务器端的负载。动态加载内容:可以使用 AJAX 技术在不刷新页面的情况下,动态地加载页面的内容,例如新闻、博客文章等。

你若盛开,清风自来 1286

nginx代理解决跨域问题_nginx 跨域解决

跨域问题在前端开发中经常会遇到,比如当一个网页通过 AJAX 请求获取另一个域名下的数据时,由于跨域限制,请求会被浏览器拒绝。为了解决跨域问题,可以通过在服务器端设置相应的跨域资源共享(CORS)策略,或者使用 JSONP、代理服务器等方法来实现跨域请求。这里选用nginx代理解决。注意: 1.请求如果跨域的话不是请求无法发出,请求可正常发出,而且服务端能收到请求并正常返回结果,但是被浏览器拦截了。2.前端不能解决跨域问题,解决思路一般都是通过 JSONP、代理服务器解决。3.在使用 JSONP 或代理服务

2401_87541908的博客 613
上一篇: 十道海量数据处理面试题与十个方法大总结
下一篇: Ubuntu安装redis以及php-redis扩展
phpLara
博客等级 码龄9年 9粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值