Ajax调用Conrtoller返回数据
前端ajax
function doRefund()
{
$.ajax({
type: "POST",
catch: false,
url: "@Url.Action("AliBarPay", "Alipay")",
data: {
strTradeNo: $("input[name='strTradeNo']").val(),
strAuthcode: $("input[name='strAuthcode']").val(),
strTotalAmount: $("input[name='strTotalAmount']").val()
},
dataType:'json',//返回数据类型为json类型
success: function (json) {
if (json.result) {
alert(json.msg)
} else {
alert(json.msg);
}
},
error: function (json) {
alert(json.msg);
}
});
}
后端controller中代码:
public ActionResult AliBarPay(string strTradeNo, string strAuthcode, string strTotalAmount)
{
AlipayTradePayContentBuilder builder = BuildPayContent(strTradeNo, strAuthcode, strTotalAmount);
string out_trade_no = builder.out_trade_no; AlipayF2FPayResult payResult = serviceClient.tradePay(builder); bool bResult = false;
switch (payResult.Status)
{
case ResultEnum.SUCCESS:
DoSuccessProcess(payResult);
bResult = true;
strResult = "支付成功!";
break;
case ResultEnum.FAILED:
DoFailedProcess(payResult);
break;
case ResultEnum.UNKNOWN:
strResult = "网络异常,请检查网络配置后,更换外部订单号重试";
break;
}
var vJson = new { result = bResult, msg = strResult };
return Json(vJson);//返回json类型
}
$.ajax({
type: "POST",
url: "/Alipay/AlipayRefund",
data: {
strTradeNo: $("input[name='strTradeNo3']").val(),
strProductId: $("input[name='strProductId']").val(),
strRefoundAmount: $("input[name='strRefundAmount']").val(),
},
dataType: "text",//返回类型为string的
success: function (result) {
if (result == "" || result == null)
{
alert("无返回值");
return;
}
$("#refundDetail").html(result);
alert(result);
}
});
后端controller:
public ActionResult AlipayRefund(string strTradeNo,string strProductId,string strRefoundAmount)
{
AlipayTradeRefundContentBuilder builder = BuildRefundContent(strTradeNo, strProductId, strRefoundAmount); AlipayF2FRefundResult refundResult = serviceClient.tradeRefund(builder); switch (refundResult.Status)
{
case ResultEnum.SUCCESS:
strResult = DoRefundSuccessProcess(refundResult);
break;
case ResultEnum.FAILED:
strResult = DoRefundFailedProcess(refundResult);
break;
case ResultEnum.UNKNOWN:
if (refundResult.response == null)
{
strResult = "配置或网络异常,请检查";
}
else
{
strResult = "系统异常,请走人工退款流程";
}
break;
} return Content(strResult);//返回string类型 }
其中必须注意的是,如果是button来调用ajax,必须指定button的type='button',不然在ajax中不会返回值:
<div>
<span>支付宝退费</span>
<form>
<span>商户订单号:</span><input type="text" name="strTradeNo3" />
<span>支付宝订单号:</span><input type="text" name="strProductId" />
<span>总金额金额:</span><input type="text" name="strRefundAmount" />
<button id="doSubmit4" type="button" onclick="doRefund()">退费提交</button>//type='button' 必须写,不然在方法中执行没得返回值,但chrom中调试可以显示,不调试时,就是显示不出来!!!
</form>
<span id="refundDetail"></span>
</div>
Ajax调用Conrtoller返回数据的更多相关文章
- asp.net mvc 使用Ajax调用Action 返回数据【转】
使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=& ...
- 快捷标签和ajax、json返回数据
<if 判断条件>标签</if><import>标签可以链接外部的样式表,和js<import file="js.util.Array" ...
- [转]IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取
兼容问题1: 页面的分享等插件加载不全,并无法点击. 兼容问题2: IE下页面选择器(#id..class.etc.)绑定click事件无法访问到,后台springmvc方法,也无法获取ajax的su ...
- EXTJS 资料 Ext.Ajax.request 获取返回数据
下面是一个登陆页面调用的EXTJS login function,通过 url: '/UI/HttpHandlerData/Login/Login.ashx',获取返回登陆账户和密码! Ext.onR ...
- ajax调用WebMethed返回处理请求时出错
ajax post调用WebMethed报错,返回的信息如下: {“Message”:“处理请求时出错”,“StackTrace”:“”,“ExceptionType”:“”} 查了一下WebMeth ...
- 微信小程序调用接口返回数据或提交数据
由于小程序发起网络请求需要通过 wx.request 文档地址 https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html 习 ...
- ajax请求对返回数据data的处理
1,ajax请求会根据响应头的返回数据类型对返回的数据data变量进行不同的处理 $.get("data/user-permission-submit-" + ddo.manipu ...
- ajax调用WebAPI添加数据
//获取账号名 var Name = document.getElementById("Text1").value;//获取密码 var Pass = document.getEl ...
- 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决
在网上找了好久没有找到,之后一步一步测试,发现了Laravel还是很强大的,解决方案如下: public function response(){ // 返回json数据 $data = [ 'err ...
随机推荐
- 2016 GitHub章鱼猫观察报告之开源统计
导读 GitHub 又发布了一年一度的章鱼猫观察报告.在这个报告中,分别对开源和社区做了一些有趣的统计,现将其中一些有趣的数据和趋势撷取出来分享给大家.完整的报告请移步Github. GitHub 上 ...
- Hadoop 部署过程中的一些问题与解决方案
环境--> centos7.1 --> jdk1.8 1.JDK卸载与安装 http://blog.csdn.net/czmchen/article/details/41047187 2. ...
- POI导出excel日期格式
参考帖子: [1]http://www.ithao123.cn/content-2028409.html [2]http://javacrazyer.iteye.com/blog/894850 再读本 ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- jstl fortokens 分割字符串
forTokens标签: forTokens标签用来截取字符串: 属性: * var :定义变量 * items :切分字符串 * begin :从哪开始 * end :到哪结束 * step :步长 ...
- map set区别
STL中的容器有顺序容器 (vector,list,deque),关联容器(map,set)还有一些其他容器.根据不同的场合选择不同的容器,会有意想不到的收获. Map是单词mapping(映射)的缩 ...
- windows网络编程
1.协议的特征 面向消息的和基于流的 面向连接的和面向无连接的 2.端口分为三类:“已知”端口.已注册端口.动态和私用端口 0~1023 IANA控制,为固定服务保留的 1024~49151 已注册端 ...
- Angular2 组件
1. 组件说明 Angular2 组件是构成Angular2应用程序的核心部分,Angualr2应用程序本质上来说就是一个组件树,Angular2组件一般由模块,注解,元数据以及组件类组成,实现组件类 ...
- JS中修改属性
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...
- python:列表与元组
1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...