`

YUI AJAX 跨域 备份

阅读更多

  主题词:YUI AJAX 跨域

     一、前言

     AJAX的POST及GET方式提交相信已经被人们熟知了,且应用面非常广,在同一工程中实现起来非常简单。由于项目的需要在本项目中跨域是很正常的现象,如何实现在同一项目的不同域中实现提交就摆在我们面前了。 

     二、方法分析

     1.ajax+webservice

     这是一种比较常用的模式。WEBSERVICE中返回的是XML结构,ajax直接对XML进行操作.

     2.ajax+wcf

     fm3.0的中新增的wcf,对以上的模式进行了优化,允许返回json形式,这种形式跟今天探讨的理论可能是一样的,我对wcf也是刚刚学习内部机理还不是太了解,不敢妄加断言.

     2.内嵌js实现方式

     这是今天要讨论的。

     众所周知,在浏览器中css和JS是允许跨域调用的,因为这种都是资源性文件,w3c是不会限制他们跨域的。这种方式是利用这种方式,在服务器端生成JSON代码,页面以调用JS的形式调用这个服务器端生成的JSON页面,以实现提交及接收返回值。

     YUI中具体的实现方法可以参见YAHOO开发者社区。

     三、YUI实现

     为了比较实现方式,利用YUI制作了本域内AJAX提交及跨域提交两部分。

     1. 制作HTML的调用页面

    

调用YUI基础JS:

 

<!--共通调用-->
<script type="text/javascript" src="JS/yahoo-min.js"></script>
<!--传统AJAX提交-->
<script type="text/javascript" src="JS/event-min.js"></script>
<script type="text/javascript" src="JS/connection-min.js"></script>
<!--跨域提交-->
<script type="text/javascript" src="JS/get-min.js"></script>
        

JS调用内容:

<script type="text/javascript">
       //ajax成功处理
        var handleSuccess = function(o){
            alert(o.responseText);
        };
        //javascript成功处理
        var handleJsSuccess = function(o){
            alert(data[0].mess);
        };
        //失败处理
        var handleFailure = function(o){
            alert('connect service failt');
        };
        //传统ajax callback
        var callback =
        {
          success:handleSuccess,
          failure:handleFailure
        };
        //传统ajax post
        function makeRequest_Ajax_Post(){
            var postData = "a=b";
            var request = YAHOO.util.Connect.asyncRequest('POST', "../Ajax.aspx", callback, postData);
        }
        //传统ajax get
        function makeRequest_Ajax_Get(){
            var request = YAHOO.util.Connect.asyncRequest('GET', "../Ajax.aspx?b=c", callback);
        }
        //跨域提交
        function makeRequest(){
            //此处url需要改为不在本域的地址,该页需要返回json数据
            var request = YAHOO.util.Get.script("http://localhost:8313/yui_post_get_host/Json.aspx?a=b",
                                            { onSuccess: handleJsSuccess,
                                              onFailure: handleFailure
                                            });
        }
    </script>
         

 调用控件

<input id="btnAjaxPost" type="button" onclick="makeRequest_Ajax_Post();" value="传统AJAX_POST提交" />
        <input id="btnAjaxGet" type="button" onclick="makeRequest_Ajax_Get();" value="传统AJAX_GET提交" />
        <input id="btnJson" type="button" onclick="makeRequest();" value="跨域提交" />
 

     2.服务器端JSON生成:不分语言,不分平台。实现的方法很多,只要符合JSON的格式就可.

        简单JSON示例:

        var data = [{'mess':'ok'}];

    

     四、总结

     YUI是我比较喜欢的框架,原来用过一阵的EXT,感觉对页面的编辑上有些不自由。我个人感觉YUI从上手和自由度上要好一些,EXT在集成度上,快速实现界而UI上要好一些。

 

     五、源码下载

     http://files.cnblogs.com/delphiren/yui_post_get_host.rar

 

     六、参考资料

     http://developer.yahoo.com/yui/   YAHOO YUI社区

     http://json.org/json-zh.html    json介绍

 

 

本文章转自:http://www.cnblogs.com/delphiren/articles/1268671.html

 

分享到:
评论

相关推荐

    yui.zip_YUI aj_ajax_ajax java_javascript_javascript YUI Ajax

    标题中的"yui.zip_YUI aj_ajax_ajax java_javascript_javascript YUI Ajax"指的是YUI(Yahoo! User Interface Library)库的一个版本,该版本重点强调了AJAX(Asynchronous JavaScript and XML)技术的使用,同时也...

    struts2 yahoo yui ajax plugin

    标题中的"struts2 yahoo yui ajax plugin"指的是一个特定的插件,这个插件将Yahoo YUI库与Struts2框架整合,以支持使用Ajax技术进行异步数据交互。这个插件允许开发者利用YUI的强大的JavaScript功能来增强Struts2...

    YUI-ajax框架开发文档

    此外,YUI还提供了一些高级特性,如请求队列管理、跨域请求支持、数据缓存等。 在YUI_2.5.2这个版本中,包含了YUI 2系列的组件和示例。这个版本可能已经有些陈旧,但仍然可以作为学习YUI Ajax框架的基础。通过查看...

    Ajax(yui-slideshow)

    **Ajax(yui-slideshow)详解** Ajax,全称Asynchronous JavaScript and XML,是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提升了用户...

    YUI-EXT使用详解

    5. **Ajax交互(Ajax Interactions)**:YUI-EXT集成了YUI的Ajax功能,允许在不刷新页面的情况下与服务器进行异步通信。这使得用户界面能够实时更新,提高了用户体验。 6. **工具提示(Tooltips)**:YUI-EXT还提供...

    yui3-master.zip

    6. **IO与Ajax** 在“io”模块中,YUI3提供了对异步数据请求的支持,如GET、POST等HTTP方法,这在构建Web应用时非常关键。开发者可以通过“yui3-master.zip”来学习如何进行高效的网络通信。 7. **响应式设计** ...

    YUI3.7.3 最新版本 带API

    5. **IO模块**:YUI3的IO模块支持Ajax请求,包括GET、POST等多种HTTP方法,以及异步请求和JSONP跨域数据获取。 6. **动画模块**:YUI3的动画模块可以轻松创建复杂的动画效果,支持CSS属性、颜色、尺寸等多方面的...

    YUI3.6文档及示例

    7. **IO与Ajax**:提供了强大的网络通信功能,如XMLHttpRequest、JSONP、跨域请求等,方便与服务器进行数据交换。 8. **动画框架**:基于RequestAnimationFrame的高性能动画系统,支持多种动画效果和自定义动画。 ...

    YUI中文文档CHM

    YAHOO YUI 中文文档 AJAX 详细 比较好用

    yui 资源包

    2. **Ajax**:IO模块用于实现异步数据请求,支持JSONP、XHR等通信方式。 3. **表格与表单**:DataTable和Form模块提供表格和表单的高级处理,包括排序、过滤、验证等功能。 4. **布局与容器**:Panel、Overlay、...

    YAHOO yui2.7 文档+ 代码+例子

    - **Ajax通信**:YUI的Ajax组件支持异步与服务器进行数据交换,实现无刷新页面更新。 **2. YUI的可扩展性** YUI的设计非常注重模块化和可扩展性,开发者可以通过编写新的模块来扩展其功能。YUI的模块化结构使得代码...

    YUI.rar_html_javascript YUI_yui_yui javascript

    7. **AJAX**:YUI的AJAX组件支持异步数据交换,使得网页可以在不刷新的情况下更新内容。 8. **动画效果**:YUI的Anim模块可以创建复杂的动画效果,增强了用户体验。 **YUI的示例** 压缩包中的示例文件展示了如何...

    yui_2.9.0前端UI

    是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两个创建时工具: YUI Compressor ...

    一些关于YUI的资源

    4. **Ajax支持**:YUI包含了Ajax组件,可以方便地进行异步数据交换,无需刷新整个页面就能更新部分内容,提升了用户体验。 5. **动画效果**:YUI的Animation模块提供了一系列方法来创建平滑的CSS属性变化动画,如...

    YUI 入门教程YUI 入门教程YUI 入门教程

    YUI,全称为Yahoo! User Interface Library,是一个开源的JavaScript库,主要用于构建富互联网应用程序(RIA)。本教程将深入介绍YUI的基础知识和关键特性,帮助开发者快速入门。 首先,YUI提供了一系列强大的DOM...

    yui的扩展ext.rar

    《深入理解YUI扩展EXT——构建高效前端UI与Ajax应用》 YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为开发者提供了丰富的UI组件和功能,以帮助创建高性能、易用的Web应用程序...

    Yahoo YUI 插件库

    9. **异步请求和Ajax**:YUI的IO组件处理Ajax请求,提供了一种简便的方式与服务器进行异步数据交换。 10. **国际化和本地化**:YUI的I18n模块支持多语言环境,帮助开发者构建全球化应用。 文件名“FTBBS_...

    yui_2.6.0r2

    YUI 2.6.0r2版本在当时的JavaScript社区中占有重要地位,它提供了大量的可重用模块,涵盖了DOM操作、事件处理、动画效果、Ajax交互、CSS样式管理、数据处理等多个领域。这个版本修复了之前的一些已知问题,增强了...

    yui.rar 例子

    《深入理解YUI:基于“yui.rar 例子”的解析》 YUI,全称Yahoo! User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”...

    yuicompressor-yui compressor

    yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...

Global site tag (gtag.js) - Google Analytics