返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JSONP跨域请求怎么实现
  • 593
分享到

JSONP跨域请求怎么实现

2024-04-02 19:04:59 593人浏览 薄情痞子
摘要

这篇文章主要介绍JSONP跨域请求怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是跨域:1、域名不同2、域名相同端口不同js出于对安全考虑不支持跨域请求。我们可以使用JS

这篇文章主要介绍JSONP跨域请求怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

什么是跨域:

1、域名不同

2、域名相同端口不同

js出于对安全考虑不支持跨域请求。我们可以使用JSONP解决跨域问题。

一、JSONP是什么

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页js是无法与不是 server1.example.com的服务器沟通,而 html 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的javascript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

原理:浏览器在js请求中,是允许通过script标签的src跨域请求,可以在请求的结果中添加回调方法名,在请求页面中定义方法,既可获取到跨域请求的数据。(js请求的不是一个单纯的json数据而是一段包含json数据的js脚本)

JSONP跨域请求怎么实现

二、模拟JSONP

服务器域名:Http://localhost:8081/rest/itemcat/list

客户端服务器:http://localhost:8082/test.html

1、普通的JS跨域请求

服务器数据:

JSONP跨域请求怎么实现

客户端请求代码:

$(function(){
  $.ajax(    {url: "http://localhost:8081/rest/itemcat/list?callback=myFunction", 
     success: function(data){
      console.info(data)
   }}); 
 });

结果

XMLHttpRequest cannot load http://localhost:8081/rest/itemcat/list?callback=myFunction. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8082' is therefore not allowed access.

2、模拟JSONP请求

客户端请求代码:

$(function(){
  greateScript("http://localhost:8081/rest/itemcat/list");
  function greateScript(src) {
   $("<script><//script>").attr("src", src).appendTo("body")
  } 
 });

结果:

list?_=1488425374097:1 Uncaught SyntaxError: Unexpected token :

三、使用JSONP

环境:

服务器域名:http://localhost:8081/rest/itemcat/list

客户端服务器:http://localhost:8082/test.html

服务端代码(本人使用springMVC4):

@RequestMapping("/itemcat/list")
 @ResponseBody
 public Object getItemCatList(String callback) {
  CatResult catResult = itemCatService.getItemCatList();
  MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(catResult);
  //设置JSONP回调函数
  mappingJacksonValue.setJsonpFunction(callback);
  return mappingJacksonValue;
 }

客户端调用代码:

$(function(){
  $.ajax(
   { url: "http://localhost:8081/rest/itemcat/list", 
    dataType: "jsonp",
    jsonp: "callback",
    success: function(data){
    console.info(data)
   }}); 
 });

结果:

JSONP跨域请求怎么实现

看返回结果可以发现返回的数据不是一段单纯的json数据,而是一段js函数。

以上是“JSONP跨域请求怎么实现”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: JSONP跨域请求怎么实现

本文链接: https://lsjlt.com/news/76483.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JSONP跨域请求怎么实现
    这篇文章主要介绍JSONP跨域请求怎么实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是跨域:1、域名不同2、域名相同端口不同js出于对安全考虑不支持跨域请求。我们可以使用JS...
    99+
    2024-04-02
  • Django—跨域请求(jsonp)
    同源策略 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源。   示例:两个Django demo demo1 url.py url(r'^demo1/',demo1), view.py def demo1...
    99+
    2023-01-31
    Django jsonp
  • Ajax中如何实现jsonp跨域请求
    这篇文章主要介绍Ajax中如何实现jsonp跨域请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是跨域?简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他...
    99+
    2024-04-02
  • JSONP入门:轻松实现跨域请求
    什么是JSONP? JSONP(JSON with Padding)是一种跨域请求技术,利用<script>标签来动态加载外部脚本,并执行返回的JSON数据。它利用浏览器的同源策略例外,允许脚本跨域请求数据,而不受安全限制。...
    99+
    2024-02-28
    JSONP、跨域请求、同源策略
  • Java中的跨域请求怎么利用Ajax jsonp 实现
    这篇文章将为大家详细讲解有关Java中的跨域请求怎么利用Ajax jsonp 实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、什么是JSONP一般来说位于 server1.exampl...
    99+
    2023-05-31
    java jsonp ajax
  • JavaScript JSONP:跨域请求的利器
    JSONP的原理 同源策略是浏览器出于安全考虑而实施的一项机制,它限制了不同源(协议、域名、端口)的网页脚本相互访问。然而,在现代Web开发中,跨域请求是不可避免的,如获取天气信息、加载第三方库等。 JSONP巧妙地利用了浏览器的一种特...
    99+
    2024-02-28
    JSONP、跨域请求、回调函数、JavaScript
  • AJAX跨域请求JSONP怎么获取JSON数据
    这篇文章将为大家详细讲解有关AJAX跨域请求JSONP怎么获取JSON数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Asynchronous JavaScript a...
    99+
    2024-04-02
  • jsonp和CORS跨域请求问题怎么解决
    这篇文章主要讲解了“jsonp和CORS跨域请求问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsonp和CORS跨域请求问题怎么解决”吧!JSONPjsonp 的原理很简单,利...
    99+
    2023-06-02
  • JavaScript JSONP:跨域请求的简明指南
    什么是JSONP? JSONP是一种跨域请求技术,它利用<script>标签的跨域特性,允许您从其他域获取JSON数据。<script>标签可以从任何域加载,无论其源与当前页面是否相同。 如何使用JSONP? 为...
    99+
    2024-02-28
    JSONP、跨域请求、CORS、XHR、Ajax
  • 详解SpringBoot多跨域请求的支持(JSONP)
    在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的JSONP数据,而在4.1版本以后的SpringMVC中,为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数...
    99+
    2023-05-31
    spring boot 跨域
  • 突破限制:JavaScript JSONP跨域请求指南
    跨域请求指的是从一个域加载资源时,该请求被另一个域所阻止的情况。这通常是由浏览器的同源策略引起的,它旨在防止恶意脚本访问敏感数据。 JSONP (JSON with Padding) 是一种聪明的技术,它利用了JSON和<scri...
    99+
    2024-02-28
    JSONP、跨域请求、JavaScript
  • Nginx中怎么实现AJAX跨域请求
    这篇文章给大家介绍Nginx中怎么实现AJAX跨域请求,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。AJAX从一个域请求另一个域会有跨域的问题。那么如何在nginx上实现ajax跨域请...
    99+
    2024-04-02
  • 快速解决跨域请求问题:jsonp和CORS
    网上各种跨域教程,各种实践,各种问答,除了简单的 jsonp 以外,很多说 CORS 的都是行不通的,老是缺那么一两个关键的配置。本文只想解决问题,所有的代码经过亲自实践。本文解决跨域中的 get、post、data、cookie 等这些问...
    99+
    2023-05-30
    jsonp 跨域问题 cors跨域请求
  • 掌握跨域请求:JavaScript JSONP的进阶指南
    跨域请求在Web开发中是一个常见的挑战。本文介绍了JSONP(JSON with Padding),一种优雅且实用的技术,它允许JavaScript应用程序与不同源的服务器进行通信。 简介: 跨域请求是指从一个源的Web应用程序向另一个...
    99+
    2024-02-28
    JSONP、跨域请求、JavaScript、JSON
  • JavaScript JSONP:跨域请求的终极解决方案
    当你在浏览器中处理来自不同来源或域的资源时,就会出现跨域请求问题。例如,你的网站向其他域托管的 API 发起请求时,浏览器会阻止该请求出于安全考虑。跨域请求阻塞是同源策略的结果,旨在防止恶意网站访问敏感信息。 为了解决跨域请求问题,Ja...
    99+
    2024-02-28
    JSONP 跨域请求 JavaScript AJAX
  • node中怎么实现一个跨域请求
    这期内容当中小编将会给大家带来有关node中怎么实现一个跨域请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第一种:jsonp参看用nodejs实现json和jsonp...
    99+
    2024-04-02
  • 关于JSONP跨域请求原理的深入解析
    目录什么是同源策略什么是JSONP练习jsonp的缺点总结什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用...
    99+
    2024-04-02
  • 突破藩篱:使用JavaScript JSONP进行跨域请求
    JSONP的原理 JSONP是一种技术,它利用<script>标签的特性来跨域请求数据。<script>标签可以动态加载并执行外部脚本文件,并且浏览器不会对跨域脚本施加同源策略限制。JSONP利用这种机制,通过将数...
    99+
    2024-02-28
    JSONP、跨域请求、同源策略、JavaScript
  • JSONP精通:解决跨域请求的终极指南
    什么是JSONP? JSONP(JSON with Padding)是一种JSON格式的跨域请求技术。它允许浏览器从与当前应用程序域不同的域获取数据。与传统的跨域请求(例如AJAX)不同,JSONP不使用XMLHttpRequest对象...
    99+
    2024-02-28
    JSONP 跨域请求 AJAX 客户端脚本
  • 利用Spring jsonp如何在java项目中实现一个跨域请求
    本篇文章为大家展示了利用Spring jsonp如何在java项目中实现一个跨域请求,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。jsonp介绍    &nb...
    99+
    2023-05-31
    spring jsonp java 跨域请求
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作