在这篇文章中,我们将为您详细介绍ajax与后台交互的内容,并且讨论关于ajax与后端交互的相关问题。此外,我们还会涉及一些关于.netAjax与后台一般处理程序(ashx)交互、Ajax()方法如何与
在这篇文章中,我们将为您详细介绍ajax与后台交互的内容,并且讨论关于ajax与后端交互的相关问题。此外,我们还会涉及一些关于.net Ajax与后台一般处理程序(ashx) 交互、Ajax () 方法如何与后台交互、ajax 异步请求,json前台后台交互、Ajax 的jquery与后台交互实现无刷新效果的知识,以帮助您更全面地了解这个主题。
本文目录一览:- ajax与后台交互(ajax与后端交互)
- .net Ajax与后台一般处理程序(ashx) 交互
- Ajax () 方法如何与后台交互
- ajax 异步请求,json前台后台交互
- Ajax 的jquery与后台交互实现无刷新效果
ajax与后台交互(ajax与后端交互)
$.ajax({ type:"post",url:"action/addc.a",data:{caption:paracaption,remark:pararemark},dataType:"json",success:function(data){ alert(JSON.stringify(data)); alert(data.msgtype); },error:function(XMLHttpRequest,textStatus,errorThrown){ alert(errorThrown); } });
jauery方法
$.ajaxSetup({ async: false }); $("#btnSubmit").click( function(){ $.post( "url",{ data },function(msg){ } ); } );
.net Ajax与后台一般处理程序(ashx) 交互
本文主要实现无动态刷新查询后台数据功能,主要用到ajax+ashx+sqlserver进行交互.
首先需要引用Jquery:
<script language="javascript" type="text/javascript" src="../js/jquery.js">
html脚本:
<asp:TextBox ID="tb_corpName" runat="server" MaxLength="100" Width="369px"></asp:TextBox>
前台通过一个事件来调用ashx:

<script type="text/javascript">
$(function () {
$("#tb_corpName").blur(function () { //鼠标失去焦点事件
var corpName = $("#tb_corpName").val();
$.ajax({
type: "post", //提交方式
url: "/ashx/FZGpyShowData.ashx", //一般处理程序的路径
data: { corpName: corpName }, //向后台传入的值
dataType: "json", //返回值格式
success: function (data) { //返回成功后将要做的事,这里是返回一个表
$("#tb_CreditCode").val(data[0].CreditCode);
$("#tb_corpCode").val(data[0].CorpCode);
$("#tb_linkTel").val(data[0].LinkPhone);
$("#corpProvince option[text=''" + data[0].StateName + "'']").attr("selected", true);
showCity();
$("#corpCity option[text=''" + data[0].AdminAreaName + "'']").attr("selected", true);
$("#tb_address").val(data[0].Address);
$("#tb_linkMan").val(data[0].LinkMan);
$("#tb_Mobile").val(data[0].LinkMobile);
}
});
})
})
</script>

后台来接收前台传过来的值,对其进行操作:

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string corpName = context.Request["corpName"].Trim().ToString(); //接收前台传过来的参数
if (corpName != "")
{
string sql = @"select top 1 CorpName,CreditCode,CorpCode,LinkPhone,StateName,AdminAreaName,LinkMan,LinkMobile,Address from tbProductOrder as a
inner join tbStateDic as b on a.StateNum = b.StateNum
inner join tbAdminAreaClass on a.CityNum = AdminAreaClassID
where CorpName =@CorpName order by CorpName";
SqlParameter[] par = new SqlParameter[1];
par[0] = new SqlParameter("@CorpName", corpName);
DataSet ds = DBHerpler.Load(sql, par);
string json = SerializerHelper.ToJsonString(ds.Tables[0]); //返回json类型的数据
context.Response.Write(json);
context.Response.End();
}
}

SerializerHelper类的定义:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.IO;
using System.Xml.Serialization;
using Newtonsoft.Json;
/// <summary>
/// SerializerHelper 的摘要说明
/// </summary>
public static class SerializerHelper
{
/// <summary>
/// 反序列化XML文件
/// </summary>
public static T LoadFromXmlFile<T>(string filepath) where T : class
{
using (FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(stream);
}
}
/// <summary>
/// 反序列化XML字符串
/// </summary>
public static T LoadFromXmlString<T>(string xml) where T : class
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
byte[] bytes = Encoding.UTF8.GetBytes(xml);
using (MemoryStream stream = new MemoryStream(bytes))
{
return (T)serializer.Deserialize(stream);
}
}
/// <summary>
/// 序列化XML对象
/// </summary>
public static string SaveToXmlString<T>(T entity) where T : class
{
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(stream, entity);
return Encoding.UTF8.GetString(stream.ToArray());
}
}
/// <summary>
/// 序列化Json对象
/// </summary>
public static string ToJsonString(object obj)
{
return ToJsonString<object>(obj);
}
/// <summary>
/// 序列化Json对象
/// </summary>
public static string ToJsonString<T>(T obj) where T : class
{
string text = JsonConvert.SerializeObject(obj);
return text;
}
/// <summary>
/// 反序列化Json字符串
/// </summary>
public static T ToJsonObject<T>(string text) where T : class
{
T obj = (T)JsonConvert.DeserializeObject(text, typeof(T));
return obj;
}
}

如果向后台传入多个参数在data里面用逗号分割可写多个参数:
data: { corpName: corpName , corpName2: corpName2}
Ajax () 方法如何与后台交互
Ajax 全称为 “Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 技术是目前在浏览器中通过 JavaScript 脚本可以使用的所有技术的集合
Ajax 全称为 “Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。Ajax 技术是目前在浏览器中通过 JavaScript 脚本可以使用的所有技术的集合。Ajax 以一种崭新的方式来使用所有的这些技术,使得古老的 B/S 方式的 Web 开发焕发了新的活力。
ajax () 方法是 jQuery 底层的 ajax 实现,通过 HTTP 请求加载远程数据。
$.ajax({
type: "GET",
url: "handleAjaxRequest.action",
data: {paramKey:paramValue},
async: true,
dataType:"json",
success: function(returnedData) {
alert(returnedData);
//请求成功后的回调函数
//returnedData--由服务器返回,并根据 dataType 参数进行处理后的数据;
//根据返回的数据进行业务处理
},
error: function(e) {
alert(e);
//请求失败时调用此函数
}
});
}
type: 请求方式,“POST” 或者 “GET”, 默认为 “GET”。 参数说明:
url: 发送请求的地址。
data: 要向服务器传递的数据,已 key:value 的形式书写(id:1)。GET 请求会附加到 url 后面。
async: 默认 true, 为异步请求,设置为 false, 则为同步请求。
dataType: 预期服务器返回的数据类型,可以不指定。有 xml、html、text 等。
在开发中,使用以上参数已可以满足基本需求。
如果需要向服务器传递中文参数,可将参数写在 url 后面,用 encodeURI 编码就可以了。
var chinese = "中文";
var urlTemp = "handleAjaxRequest.action?chinese="+chinese;
var url = encodeURI(urlTemp);//进行编码
$.ajax({
type: "GET",
url: url,//直接写编码后的url
success: function(returnedData) {
alert(returnedData);
//请求成功后的回调函数
//returnedData--由服务器返回,并根据 dataType 参数进行处理后的数据;
//根据返回的数据进行业务处理
},
error: function(e) {
alert(e);
//请求失败时调用此函数
}
});
}
struts2 的 action 对请求进行处理:
public void handleAjaxRequest() {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
//设置返回数据为html文本格式
response.setContentType("text/html;charset=utf-");
response.setHeader("pragma", "no-cache");
response.setHeader("cache-control", "no-cache");
PrintWriter out =null;
try {
String chinese = request.getParameter("chinese");
//参数值是中文,需要进行转换
chinese = new String(chinese.getBytes("ISO--"),"utf-");
System.out.println("chinese is : "+chinese);
//业务处理
String resultData = "hello world";
out = response.getWriter();
out.write(resultData);
//如果返回json数据,response.setContentType("application/json;charset=utf-");
//Gson gson = new Gson();
//String result = gson.toJson(resultData);//用Gson将数据转换为json格式
//out.write(result);
out.flush();
}catch(Exception e) {
e.printStackTrace();
}finally {
if(out != null) {
out.close();
}
}
}
struts.xml 配置文件:不需要写返回类型
<action name="handleAjaxRequest" class="com.test.TestAction"
method="handleAjaxRequest">
</action>
注:ajax 通过 async 参数决定是异步还是同步,false 同步,true 异步;分享 AJAX 前后台交互方法
异步执行顺序是先执行后续动作,再执行 success 里代码;
同步是先执行 success 里代码,再执行后续代码;
验证:同步时数据量大是否会卡顿?例如从后台搜索大量数据时,页面是否卡死?
1、(异步) 方法调用,后续代码不需要等待它的执行结果
后台 <C#>:
using System.Web.Script.Services;
public static string GetStr(string str1, string str2)
{
return str1 + str2;
}
前台 <JQuery>:
function Test(strMsg1,strMsg2)
{
$.ajax({
type: "Post",
url: "Demo.aspx/GetStr",
async: true,
//方法传参的写法一定要对,与后台一致,区分大小写,不能为数组等,str1为形参的名字,str2为第二个形参的名字
data: "{''str1'':''"+strMsg1+"'',''str2'':''"+strMsg2+"''}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
},
error: function(err) {
alert(err);
}
});
//隐藏加载动画
$("#pageloading").hide();
}
后台 <C#>:2、(同步) 方法调用,可用于需要得到返回值是执行后续代码的前提
using System.Web.Script.Services;
public static string GetStr(string str1, string str2)
{
return str1 + str2;
}
前台 <JQuery>:
function Test(strMsg1,strMsg2)
{
var str = “”;
$.ajax({
type: "Post",
url: "Demo.aspx/GetStr",
async: false,
//方法传参的写法一定要对,与后台一致,区分大小写,不能为数组等,str1为形参的名字,str2为第二个形参的名字
data: "{''str1'':''"+strMsg1+"'',''str2'':''"+strMsg2+"''}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
str = data.d;
},
error: function(err) {
alert(err);
}
});
return str;
ajax 异步请求,json前台后台交互
直接上例子!
第一例:$.getJSON()
1.导入json的相关jar包
2.后台servlet代码
public class ajaxtest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//上面是处理乱码的
String[] str = {"张三","李四","王五"}; //最普通的json数组结构
JSONArray json = JSONArray.fromObject(str); //string转json结构
PrintWriter out = response.getWriter();
out.print(json); //response 将json输出到客户端。
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
前端jsp页面
<script type="text/javascript"
src="http://libs.cdnjs.net/jquery/3.2.1/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#b01").click(function(){
$.getJSON("${pageContext.request.contextPath}/ajaxtest",function(result){
$.each(result,function(i,field){
$("#myDiv").append(field+":");
});
});
});
});
</script>
</head>
<body>
<div id="myDiv"><h2>通过 AJAX 改变文本</h2></div>
<button id="b01" type="button">改变内容</button>
点击按钮的结果:张三:李四:王五。
----------------------------------------------------------
第二例 :$.ajax()
后台 servlet不变
jsp前端页面:
<script type="text/javascript">
$(document).ready(function(){
$("#b01").click(function(){
$.ajax(
{
url:"${pageContext.request.contextPath}/ajaxtest",
dataType:"json",
success:function(result){
$.each(result,function(i,fireld){
$("#myDiv").append(fireld+":");
});
}
});
});
});
</script>
</head>
<body>
<div id="myDiv"><h2>通过 AJAX 改变文本</h2></div>
<button id="b01" type="button">改变内容</button>
点击后的结果:张三:李四:王五:
----------------------------------------------------
第三例:
Ajax 的jquery与后台交互实现无刷新效果
总结
以上是小编为你收集整理的Ajax 的jquery与后台交互实现无刷新效果全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
关于ajax与后台交互和ajax与后端交互的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.net Ajax与后台一般处理程序(ashx) 交互、Ajax () 方法如何与后台交互、ajax 异步请求,json前台后台交互、Ajax 的jquery与后台交互实现无刷新效果等相关内容,可以在本站寻找。
本文标签: