`
miss4813
  • 浏览: 104360 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

深入浅出JSONP--解决ajax跨域问题

 
阅读更多
取不到数据!  
     上周客户新买了服务器,原本在旧的服务器上放着客户的Web主页信息和一个后台程序(asp.net),在客户的主页中有一个动态显示最新消息的处理,这个处理就是通过ajax异步从那个后台程序中取得的。由于又购买了新的服务器,客户想把web主页和那个后台程序分开来,后台程序被部署到了新的服务器上。不过这个项目是我的同事小福同志开发的,也就由他来把程序分开部署,然后进行一些小改动。

  "怎么最新消息取不到了,异步处理的url也已经添加上新服务器的地址(http://xxxx.com/.../news.ashx),奇怪了..."小福在一边抱怨,我看了看IE7下还出了个脚本错误"アクセスが拒否されました"的错误(环境是日文的,意思是访问被拒绝了)。网上查了下中文环境应该是"没有权限"吧。在Firefox和Chrome上是看不到任何脚本错误的,不过可以通过Firebug工具测出这个错误("Permission denied to call method XMLHttpRequest.open")。

同源策略   
    为什么会出这样的错误呢?这是因为所有支持Javascript的浏览器都会使用同源策略这个安全策略。看看百度的解释:

  同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当一个百度浏览器执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行。
  这就是引起为何取不到数据的原因了,那如何才能解决跨域的问题呢?没错,我们现在可以进入正题,来了解下什么是JSONP了。


JSON和JSONP  
    JSONP和JSON好像啊,他们之间有什么联系吗?
  JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。对于JSON大家应该是很了解了吧,不是很清楚的朋友可以去json.org上了解下,简单易懂。
  JSONP是JSON with Padding的略称。它是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式)。--来源百度
  JSONP就像是JSON+Padding一样(Padding这里我们理解为填充), 我们先看下面的小例子然后再详细介绍。


http://www.cnblogs.com/chopper/archive/2012/03/24/2403945.html
分享到:
评论

相关推荐

    深入浅出Ajax(Head Rush Ajax) 源码 书中代码

    在"深入浅出Ajax"这本书中,作者深入讲解了Ajax的基本原理和实际应用。 **章节概览** 根据描述,这本书分为七章,每章可能涵盖以下关键知识点: 1. **第一章:初识Ajax** - Ajax的历史和概念 - Ajax工作原理的...

    深入浅出Ajax教程

    本教程《深入浅出Ajax》旨在全面讲解Ajax技术的各个方面,帮助读者掌握这一强大的工具。以下是一些关键知识点: 1. **XMLHttpRequest对象**:Ajax的核心就是XMLHttpRequest对象,它允许JavaScript在后台与服务器...

    深入浅出ajax书中源码

    在"深入浅出Ajax"这本书中,作者深入剖析了Ajax的工作原理、核心技术和实际应用场景,旨在帮助读者掌握这一关键技术。 **1. Ajax工作原理** Ajax的核心是JavaScript的XMLHttpRequest对象,它允许浏览器在后台与...

    深入浅出AJAX源码

    "深入浅出AJAX源码"这个主题旨在帮助开发者理解AJAX的工作原理,通过源码分析来提升对AJAX的实际应用能力。 首先,我们从第2章的代码开始。这一章可能涵盖了AJAX的基础知识,包括创建XMLHttpRequest对象,这是AJAX...

    AJAX深入浅出

    **AJAX 深入浅出** AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,极大地提升了用户体验。...

    深入浅出Ajax源码

    《深入浅出Ajax源码》是一本专注于解析Ajax技术核心原理的书籍,旨在帮助读者从源头上理解并掌握Ajax的工作机制。Ajax,全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需刷新整个网页的...

    Head First深入浅出Ajax 中文版PDF

    《Head First深入浅出Ajax》是一本专门为初学者和进阶者设计的关于Ajax技术的中文版指南。这本书以其独特的视觉风格和易于理解的方式,详细介绍了Ajax的核心概念和技术,是JavaScript开发者深入理解Web异步通信的...

    深入浅出Ext JS(第2版) 随书光盘提供的书中实例

    《深入浅出Ext JS(第2版)》是一本详细解析Ext JS框架的权威书籍,其随书光盘包含了书中所有实例的源代码,这些代码对应于Ext JS的3.2.0版本。通过深入研究这些实例,读者可以更直观、更深入地理解Ext JS的强大功能和...

    Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别

    前言  第一次听说jsonp,其实早在2年之前。当时在做一个活动页面的抽奖模块,要从服务端get一个概率,当时什么都不懂,同事说用ajax,我就用ajax,同事说...没关系,既然是深入浅出,那就从头说起。  假如我

    ajax深浅-入门到精通

    7. **跨域解决方案**:JSONP、CORS和WebSocket。 8. **前端路由和局部刷新**:在单页应用(SPA)中的Ajax实践。 通过深入学习和实践,你可以掌握Ajax的精髓,提升网页应用的交互性和性能,为用户提供更流畅的浏览...

    《ajax入门经典》源代码

    10. **跨域问题与解决方案**:解释Ajax的同源策略限制,以及如何通过JSONP、CORS等方式解决跨域问题。 11. **Ajax安全考量**:分析Ajax应用可能遇到的安全风险,如XSS(跨站脚本攻击)、CSRF(跨站请求伪造)等,并...

    ajax佟刚老师源码

    7. **跨域问题**:探讨Ajax的同源策略限制及如何通过JSONP、CORS等方式解决跨域问题。 8. **jQuery/Ajax库**:对比原生JavaScript实现的Ajax与使用jQuery或其他库如axios、fetch的便利性。 9. **实战项目**:通过...

    疯狂ajax源代码第01-12章

    《疯狂Ajax》是李刚老师撰写的一本关于Ajax技术的权威著作,这本书深入浅出地讲解了Ajax在Web开发中的应用。源代码包含了第01到12章的内容,这让我们有机会通过实践来理解书中所讲述的概念和技术。下面将详细阐述...

    Extjs深入浅出pdf

    深入浅出EXTJS 的PDF 文档无疑是一个宝贵的资源,适合那些希望深入了解该框架的开发者。以下是对文档中提到的一些关键知识点的详细解释: 1. **Ext.data**:EXTJS 的数据模块是其核心组件之一,它提供了一种在...

    Ajax PPT

    本PPT将深入浅出地介绍Ajax的基础知识、工作原理以及实际应用。 ### 1. Ajax 基础概念 - **异步通信**:Ajax的核心是能够在不干扰用户与网页交互的情况下,与服务器进行数据交换。 - **JavaScript**:Ajax主要使用...

    Ajax实战(Ajax in action中文版) (例题)

    《Ajax实战(Ajax in action中文版)》一书深入浅出地介绍了这一技术,旨在帮助开发者熟练掌握Ajax的核心概念和实践应用。 **1. Ajax基础** Ajax的基础在于JavaScript,XMLHttpRequest对象是实现Ajax的核心。这个对象...

    ajax in action :ajax 实战 源码

    总之,《Ajax in Action》这本书深入浅出地介绍了Ajax技术,无论是对初学者还是有经验的开发者,都能从中受益。通过学习和实践书中的示例代码,读者将能够熟练掌握Ajax的使用,从而提升Web应用的性能和用户体验。

    07-ajax.pdf

    Ajax 即“Asynchronous Javascript And XML”...此文档是关于Ajax相关的知识,深入浅出的讲解了Ajax的应用以及写法,对于刚入门的新手有很大的帮助。同时,文档里也讲解了跨域请求以及jsonp的相关知识,值得一看。

    ajax_in_action

    "Ajax in Action"这本书深入浅出地讲解了Ajax的核心概念和技术,对于想要深入了解和掌握Ajax技术的开发者来说是一本宝贵的资源。以下是基于书名和描述中的关键点,对Ajax及其相关技术的详细阐述: 1. **Ajax的基本...

    AJAX开发简略中文版

    在《AJAX开发简略中文版》这本书中,作者深入浅出地介绍了AJAX的基本概念、工作原理以及实际应用。书中不仅涵盖了AJAX的核心组成部分,如JavaScript、XMLHttpRequest对象、JSON和DOM操作,还提供了丰富的实例源代码...

Global site tag (gtag.js) - Google Analytics