Ajax的JSONP解决跨域详解
来源:互联网 发布:淘宝事变 编辑:程序博客网 时间:2024/06/02 04:18
ajax的jsonp实现跨域
- 原由
由于ajax的是通过XMLHttpRequest对象请求数据的,在同源的条件(协议,域名,端口号都相同)下,这没什么问题,但在不同源的情况下,浏览器是不允许XMLHttpRequest对象跨域请求的,所以便提出很多实现跨域的方案,如iframe,jsonp等方法,但jsonp最常用,其实jquery的$.ajax跨域请求就是通过jsonp实现的
- json详解
1.前端代码
<script> function jsonp(url, arg, fn) { //1.动态创建script标签,设置src属性 //1.1 地址请求格式: url?page=1&count=10&callback=fn var srpt = document.createElement('script'); var queryString = ''; for (var key in arg) { queryString += key + '=' + arg[key] + '&'; } var funName = 'fun_' + Math.random().toString().substr(3); window[funName] = fn; url += '?' + queryString; url += 'callback=' + funName; srpt.src = url; //2.将创建好的script标签添加到页面上 document.body.appendChild(srpt); } //url:"",arg:{},callback jsonp('http://127.0.0.1:3000/home.js', {page: 1, count: 10}, function (data) { console.log(data.age,1); } );//jsonp调用,请求http://127.0.0.1:3000/home.js?age=1&count=10&callback=fun_562156256(函数名是随机生成的,相应回来后,通过该回调函数处理取回的数据) jsonp('http://127.0.0.1:3000/home.js', {page: 1, count: 10}, function (data) { console.log(data.age,2); } );</script>
后端服务器代码
const express = require('express');const app = express();app.get('/home.js',(req,res)=>{ var funName = req.query.callback; res.send(funName+"({name:'jack',age:21,sex:'男'})");});app.listen(3000);
0 0
- Ajax的JSONP解决跨域详解
- jsonp的解决ajax跨域问题
- 通过jsonp解决ajax的跨域请求问题
- 利用JSONP解决AJAX跨域问题的原理
- jQueryAJAX的$.ajax()用jsonp解决跨域问题
- 通过jsonp解决ajax的跨域请求问题
- 通过jsonp解决ajax的跨域请求问题
- 通过jsonp解决ajax的跨域请求问题
- JSONP解决跨域提交数据(jquery jsonp Ajax)
- JSONP解决跨域提交数据(jquery jsonp Ajax)
- 深入浅出JSONP:解决AJAX跨域问题
- 深入浅出JSONP--解决ajax跨域问题
- 深入浅出JSONP--解决ajax跨域问题
- JSONP--解决ajax跨域问题
- 深入浅出JSONP--解决ajax跨域问题
- 深入浅出JSONP--解决ajax跨域问题
- 深入浅出JSONP--解决ajax跨域问题
- 深入浅出JSONP--解决ajax跨域问题
- 【Android】IllegalArgumentException: You cannot start a load for a destroyed activity
- lightoj 1414 - February 29
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
- 分治法
- 算法的学习
- Ajax的JSONP解决跨域详解
- Mac终端svn: E155021 解决办法
- 每天工作4小时的程序员
- 数据结构(十四) 树
- SpringMVC框架配置(未完成)
- 使用自己的Python函数处理Protobuf中的字符串编码
- spring 与JPA/Hibernate的整合示例
- Win10如何删除英语(美国)美式键盘
- 硬币(从113到230)