前端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返回数据的更多相关文章

  1. asp.net mvc 使用Ajax调用Action 返回数据【转】

      使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=& ...

  2. 快捷标签和ajax、json返回数据

    <if 判断条件>标签</if><import>标签可以链接外部的样式表,和js<import file="js.util.Array" ...

  3. [转]IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取

    兼容问题1: 页面的分享等插件加载不全,并无法点击. 兼容问题2: IE下页面选择器(#id..class.etc.)绑定click事件无法访问到,后台springmvc方法,也无法获取ajax的su ...

  4. EXTJS 资料 Ext.Ajax.request 获取返回数据

    下面是一个登陆页面调用的EXTJS login function,通过 url: '/UI/HttpHandlerData/Login/Login.ashx',获取返回登陆账户和密码! Ext.onR ...

  5. ajax调用WebMethed返回处理请求时出错

    ajax post调用WebMethed报错,返回的信息如下: {“Message”:“处理请求时出错”,“StackTrace”:“”,“ExceptionType”:“”} 查了一下WebMeth ...

  6. 微信小程序调用接口返回数据或提交数据

    由于小程序发起网络请求需要通过 wx.request 文档地址 https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html 习 ...

  7. ajax请求对返回数据data的处理

    1,ajax请求会根据响应头的返回数据类型对返回的数据data变量进行不同的处理 $.get("data/user-permission-submit-" + ddo.manipu ...

  8. ajax调用WebAPI添加数据

    //获取账号名 var Name = document.getElementById("Text1").value;//获取密码 var Pass = document.getEl ...

  9. 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决

    在网上找了好久没有找到,之后一步一步测试,发现了Laravel还是很强大的,解决方案如下: public function response(){ // 返回json数据 $data = [ 'err ...

随机推荐

  1. Javascript闭包深入解析及实现方法

    1.什么是闭包 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点:1. 作为一个函数变量的一个引用,当函数返回时 ...

  2. MySQL 常用SQL技巧和常见问题

    一.巧用正则表达式 二.巧用RAND() 提取随机行 利用rand() 的随机数功能,结合 order by 子句完成随机抽取某些行的功能. 三.利用 group by 的 with rollup 子 ...

  3. ubuntu和centos安装RRDTool——cacti前置技能

    Installing Pre-Requisites Note that RRDTool 1.0.x versions included all dependancies, but 1.2.x vers ...

  4. LVS集群之DR模式 实现

    ps:做 dr 模式 之前,先把之前做过的操作清空掉 1.ipvsadm -ln 查看规则 2.ipvsadm -C 清空规则 3.ipvsadm -ln 确认 4.iptables -t nat - ...

  5. js 中 substring() 和 substr() 提取字符

    提取字符串substring() substring() 方法用于提取字符串中介于两个指定下标之间的字符. 语法: stringObject.substring(startPos,stopPos)  ...

  6. spring加载多个配置文件

    首先我们都知道要使用spring,则需要在web.xml中增加如下代码: web.xml: 1:<listener><listener-class>org.springfram ...

  7. MySQL找回管理员密码

    更改MySQL提示符 mysql> prompt \u@mysql \r:\b:\s 查找以my开头的数据库 mysql> show databases like 'my%' 删除用户所有 ...

  8. Revolving Digits(hdu 4333)

    题意:就是给你一个数字,然后把最后一个数字放到最前面去,经过几次变换后又回到原数字,问在这些数字中,比原数字小的,相等的,大的分别有多少个.比如341-->134-->413-->3 ...

  9. 我为什么喜欢用C#来做并发编程

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:就语言和运行时层面,C#做并发编程一点都不弱,缺的是生态和社区. 硅谷才女朱赟(我的家 ...

  10. Tomcat中JVM内存溢出及合理配置及maxThreads如何配置(转)

    来源:http://www.tot.name/html/20150530/20150530102930.htm Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚 ...