JSONP和AJAX的关系

来源:19-4 Ajax-XMLHttpRequst

我在草里非常隐蔽

2017-09-03

请问老师:

1. JSONP是AJAX实现跨域的一种方式,这样理解对吗?

2. var xhr=new XMLHttpRequest();

xhr.open("GET","./api",true);

xhr.onreadystatechange=function(){

if(readyState===4&&status===200){

console.log(xhr.responseText)

}

}

xhr.send();

那这段AJAX请求代码中,哪里体现了JSONP???

写回答

2回答

ayoualing

2017-09-05

jsonp是利用<script>的下载可以跨域的这个性质,跟XMLHttpRequest没有关系


下面是我实现的一个jsonp的简单例子


前端代码:

  <script>
    function myFunc( data ) {
      console.log(data)
    }
  </script>
  <script src="http://localhost:3000/api/jsonp/?func=myFunc"></script>



后端代码:

  // 拿到前端的函数名
  var func = req.query.func
  data = '我是数据'
  // 返回 myFunc("我是数据") 给前端
  res.status(200).send(func + '("' + data + '")')


前端得到后端返回的数据后会开始解析执行,然后就得到了后端返回的数据了


0
0

双越

2017-09-03

第一点是对的。不过,只是功能上的,而不是实现上的。jsonp的实现并没有用到 XMLHttpRequest ,好好去看看 jsonp 的那节视频

0
0

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程