Java web---- ajax同步异步,跨域

-------简介---------------------------------------------------------------------------------------------------------------------

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

-------同步与异步--------------------------------------------------------------------------------------------------------------

同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有等待过程。

异步交互:发送一个请求,不需要等待返回,随时可以再发送下一个请求,不需要等待。

1.async值为true (异步,默认为true

当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)

例如

$.ajax({ 
     type:"POST",
     url:"Venue.aspx?act=init",
    data:"",
    dataType:"html",
     success:function(result){  //function1()
       f1();
       f2(); 
    }
     failure:function (result) { 
      alert('Failed'); 
     },
 }
 function2();

在上例中,当ajax块发出请求后,他将停留function1(),等待server端的返回,但同时(在这个等待过程中),前台会去执行function2()。

2、async值为false (同步)

当执行当前AJAX的时候会停止执行后面的JS代码,直到AJAX执行完毕后时,才能继续执行后面的JS代码。

例如

$.ajax({ 
     type:"POST",
     url:"Venue.aspx?act=init",
     dataType:"html",
     async: false,
    success:function(result){  //function1()
       f1();
       f2();
     }
    failure:function (result) { 
      alert('Failed'); 
     },
 }
 function2();

当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),直到function1()部分执行完毕。

-------跨域访问-----------------------------------------------------------------------------------------------------------------

1、使用Access-Control-Allow-Origin标头。

  使用如下标头可以接受全部网站请求,在服务器后台写法


ajax写法和平常一样:



http://i.cnblogs.com/EditPosts.aspx?opt=1

测试




2、使用jsonp跨域请求。

前端页面应这样写:

Java web---- ajax同步异步,跨域_第1张图片

后台代码应该这样写:

Java web---- ajax同步异步,跨域_第2张图片

这样就能实现返回值。亲测有用。

你可能感兴趣的:(java)