请求一个关于AJAX向服务器发送请求并且接收服务器返回的数据的问题?
我写了个方法,向服务器一个servlet发送请求并且接收从servlet返回的数据并根据该值进行判断选择,在服务器端的servlet我是使用的out.println("0...
我写了个方法,向服务器一个servlet发送请求并且接收从servlet返回的数据并根据该值进行判断选择,在服务器端的servlet我是使用的out.println("0")和out.println("1")来返回数据的,就是使用PrintWriter out=response.getWriter()来发送数据,不知道这是不是标准的方法,就是还有别的方法可以向AJAX请求来返回数据吗?除了我上述的方法外?另一个问题就是,当我在JavaScript脚本里使用var response = xmlHttp.responseText;来获取服务器端返回的数据时,接下来对response进行判断,为什么使用if(response==0)就能得到正确的结果,而是用if(response=="0")就得不到正确的结果呢?难道从服务器端返回的数据会自动进行判断是否可以转换成数字类型的?我还以为在JavaScript脚本里将服务器返回的数据都当字符串进行处理就行了。因为我接触AJAX不久,所以用起来不是太熟练,希望高手们都给点意见,帮小弟学点东西,给小弟点指教,先谢谢了!
所以,我想先不管底层是怎么实现的,我现在想搞明白的是服务器端程序要想响应AJAX请求,可以使用哪些方法,各种方法有什么不同之类的,或者可不可以格式化返回,遵循什么协议之类的。我现在关注的是AJAX的使用,高手帮帮忙! 展开
所以,我想先不管底层是怎么实现的,我现在想搞明白的是服务器端程序要想响应AJAX请求,可以使用哪些方法,各种方法有什么不同之类的,或者可不可以格式化返回,遵循什么协议之类的。我现在关注的是AJAX的使用,高手帮帮忙! 展开
1个回答
展开全部
第一个问题:先搞清ajax的底层通信形式,ajax发出请求后等待回复,也就是监听某个信息端口,服务器接到请求后,发送结果,也就是向某个端口写信息,所以,不管在形式上编程上有什么不同,都是向这个ajax所在地的信息端口输出信息。
第二个问题,response==0是将response转换为int类型再对比,肯定正确,而response肯定不等于"0",因为out.println("0"),println这个方法就是在输出的字符串后加一个回车,你可以将response转换为ascii码看看是不是这样。
第二个问题,response==0是将response转换为int类型再对比,肯定正确,而response肯定不等于"0",因为out.println("0"),println这个方法就是在输出的字符串后加一个回车,你可以将response转换为ascii码看看是不是这样。
追问
呵呵,你说的是传输层的东西了,这个我略懂一点,端口跟IP地址来连接通信的双方嘛,呵呵~但是AJAX涉及到什么应用层协议吗?比方说servlet编程,不管我们怎么out.println,他都是遵循HTTP协议的,请求消息,响应消息,请求行,状态行,各种请求状态头,还有响应的实体内容,用POST,参数放到实体里,用GET,参数跟在URL参数后边。。。。。。其实如果了解HTTP协议,也可以做一个山寨版的服务器,只要会解析HTTP协议就行了,嘻嘻
追答
ajax请求就是普通的request,只不过它是让activeX发送的这个请求,跟通常使用的提交、刷新等是一样的,你可以用servlet、jsp等形式来构建服务器端,但是这些都是对ajax的请求链接进行write,就这么一种方法,都是进行输出,不管形式如何,至于格式化返回,对于应用层来说,它就是一串字符,格式需要你自己定义,比如你可以将字符串写成XML格式的,然后就可以在ajax端将这段字符串作为一个XML来获取。说白了,ajax只是一种异步通信的方案,它的技术组成就是js+服务器,就是使用js控制一个activeX跟服务器通信,这仅仅是一种方案方法,它并没有限定什么,你所说的数据格式化之类的跟ajax没关系,你可以定义任何你想要的数据结构。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询