`
red_devils
  • 浏览: 1605 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用JSONP解决跨域请求

阅读更多

由于同源策略的限制,在一个源下只允许请求当前源(域名、协议、端口)的资源。如果要在当前源下请求另一个源的数据,就是跨域请求了.最近碰到这个问题,上网找了一些资料发现用JSONP可以解决跨域请求的问题,特此记录下来.

JSONP是一个非官方的协议,它允许在服务器端集成script tags返回至客户端,通过javascript callback的形式实现跨域访问。也就是我们可以通过客户端使用html的script标记来跨域请求服务端,服务端响应中返回一段script代码,来回调客户端的一个javascript函数.可以直接使用JSON传递javascript对象。

具体使用方式是这样的:
假定现在有两个域:
域A:client.com
域B:server.com
现在client.com需要访问server.com获得一些数据,就可在client.com的页面中嵌入
下面这样的代码:

 

<script type="text/javascript">
     // 服务端返回数据的回调函数
   function callbackFun(result) {
	    alert(result);
     }
    // 创建一个script标签
    var requestData = document.createElement("script") ;
    requestData.type = "text/javascript";
    // src请求指向server端
    requestData.src = "http://server.com?param1=xxx&param2=xxx";
    if (heads.length) {
    	  heads[0].appendChild(requestData);
    } else {
    	  document.documentElement.appendChild(requestData);
    }
</script>



上述src的请求在server.com中将返回如下数据:

 

callbackFun('[{"key1" : "value1}, {"key2" : "value2"}]')
 
其实这个回调函数里可以返回任何数据,可以是json,可以是xml,可以是一段页面代码...

这样就完成了一次跨域请求.

 

分享到:
评论

相关推荐

    PHP AJAX JSONP实现跨域请求使用范例_ajax如何解决跨域请求

    PHP AJAX JSONP 实现跨域请求使用实例 在 Web 开发中,跨域请求是指从一个域名下的页面请求另一个域名下的资源,这种情况下,浏览器会限制这种请求,以防止恶意攻击。JSONP(JSON with Padding)是一种解决跨域请求...

    html通过 ajax jsonp跨域请求接收和传送数据

    **AJAX和JSONP跨域请求的实现过程** 1. **AJAX跨域**: 通常,AJAX请求受到同源策略限制。为实现跨域,我们可以使用CORS(Cross-Origin Resource Sharing)机制。服务器需要在响应头中添加`Access-Control-Allow-...

    jsonp解决跨域.docx

    JsonP 是一种解决跨域请求的技术,它可以跨域请求数据,解决了 JavaScript 的跨域问题。JsonP 的优点是可以跨域请求数据,减少服务器的负载,但是它也存在安全问题和服务器端实现的限制。JsonP 的使用场景非常广泛,...

    JSONP解决跨域问题

    JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了`&lt;script&gt;`标签可以跨域请求资源的特性,为了解决JavaScript在浏览器端由于同源策略限制无法直接访问不同源的HTTP请求的问题。在本场景中,前端使用...

    jsonpajax跨域请求

    "jsonp跨域请求"可能是服务器返回的示例数据,模拟了JSONP的跨域请求过程。 总结,JSONP和CORS是解决JavaScript跨域问题的两种主要方法,它们各有优缺点,适用于不同的场景。JSONP简单易用,但安全性较低;CORS则更...

    使用Jsonp方式跨域获取json

    JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了`&lt;script&gt;`标签可以跨域请求资源的特性来实现数据的交换。在Web开发中,由于浏览器的同源策略限制,JavaScript通常无法直接访问不同源的资源,但JSONP...

    jsonp解决跨域_js_方案_web_跨域_

    CORS通过设置服务器的Access-Control-Allow-Origin等响应头,允许特定的跨域请求。代理服务器则是在服务器端设置一个中间层,转发客户端请求,从而绕过同源策略。 总结来说,jsonp是早期解决Web跨域问题的一种方法...

    跨域访问禁止以及使用JSONP实现跨域的示例

    在两个Tomcat服务器之间进行跨域访问演示,我们可以设置CORS(Cross-Origin Resource Sharing)头信息,允许特定的跨域请求。在Tomcat的配置文件(如server.xml)中,我们可以通过添加过滤器或在Servlet中设置响应头...

    Ajax跨域请求解决方案-JSONP

    然而,Ajax技术在实现动态网页交互时常常需要跨越这个限制,这时就引入了JSONP(JSON with Padding)作为跨域请求的一种解决方案。本文将详细介绍JSONP的工作原理以及如何在ASP.NET网站开发中应用JSONP解决Ajax跨域...

    跨域访问解决方法-jsonp

    由于浏览器允许不同源的`&lt;script&gt;`标签加载和执行,开发者可以利用这一点来实现跨域请求。 ### JSONP工作原理 1. **客户端(浏览器)**:在JavaScript中,我们创建一个`&lt;script&gt;`元素,并设置其`src`属性为服务器...

    ajax跨域请求jsonp前后台代码

    基于ajax方式的跨域请求jsonp的前后台代码

    利用JQuery jsonp实现Ajax跨域请求json数据

    本篇文章将详细讲解如何利用jQuery的jsonp方法实现Ajax跨域请求,以及如何在服务器端使用.Net的*.handler和WebService来返回JSON数据。 首先,理解JSONP的基本原理。JSONP是一种非官方的协议,通过动态创建`...

    ajax跨域CORS方案 JSONP跨域请求方案.zip

    JSONP是早期解决跨域问题的手段,适用于只支持GET请求的情况。它的原理是利用HTML的`&lt;script&gt;`标签不受同源策略限制的特性,通过动态创建`&lt;script&gt;`标签来加载服务器返回的JavaScript代码,这个代码通常是一个函数...

    jsonp跨域请求数据实现手机号码查询实例分析.docx

    - **发起请求**:使用jQuery的`$.ajax`方法发送GET请求,并设置`dataType`为`"jsonp"`以支持JSONP方式的跨域请求。 - **参数设置**:URL中包含待查询的电话号码,并指定`jsonp`参数为`callback`,这是服务器端期望...

    Vue项目中使用jsonp抓取跨域数据的方法

    总的来说,Vue项目中使用JSONP抓取跨域数据的步骤包括:安装JSONP库,封装一个返回Promise的`jsonp`函数,处理参数并将它们拼接到URL上,最后通过`originJsonp`发起请求并处理结果。这种方式使得在Vue项目中实现跨域...

    使用JSONP完成HTTP和HTTPS之间的跨域访问

    知识点三: 使用 JSONP 完成 HTTPS 跨域请求的前提条件 使用 JSONP 完成 HTTPS 跨域请求需要满足以下前提条件: 1. 已配置本机 Java 环境 2. 已安装 Tomcat 6.0 知识点四: 生成服务器证书 使用 Keytool 工具生成...

    jsonp跨域请求

    JSONP(JSON with Padding)是一种常见的解决JavaScript跨域问题的技术。由于浏览器的同源策略限制,JavaScript通常不能向不同源的服务器...了解和掌握JSONP有助于理解跨域请求的原理,为解决实际问题提供更多的选择。

    php版 解决跨域问题CORS ajax+get,post+jsonp例子源代码.zip

    而"PHP AJAX JSONP实现跨域请求使用实例 - 神马和浮云 - 博客园.url"是一个链接,可能指向了一个详细的教程或示例,可以帮助你更好地理解和实践这些技术。 总的来说,PHP、AJAX 和 JSONP 是Web开发中跨域请求的重要...

    jsonp跨域解决源代码

    2. JSONP原理:JSONP的基本思想是,服务器提供一个可以接受参数的JavaScript函数名,客户端在请求时传递这个函数名,服务器返回一个调用该函数并带有JSON数据的脚本,`&lt;script&gt;`标签加载这个脚本,从而实现跨域数据...

Global site tag (gtag.js) - Google Analytics