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 ...
随机推荐
- .NET工程师面试宝典
.Net工程师面试笔试宝典 传智播客.Net培训班内部资料 这套面试笔试宝典是传智播客在多年的教学和学生就业指导过程中积累下来的宝贵资料,大部分来自于学员从面试现场带过来的真实笔试面试题,覆盖了主流的 ...
- word201612012
I/O (input/output) port / 输入/输出端口 IAS, Internet Authentication Service / Internet 验证服务 ICMP, Interne ...
- faster r-cnn 在CPU配置下训练自己的数据
因为没有GPU,所以在CPU下训练自己的数据,中间遇到了各种各样的坑,还好没有放弃,特以此文记录此过程. 1.在CPU下配置faster r-cnn,参考博客:http://blog.csdn.net ...
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- python基础一
1.1 Python优点 1.简单.优雅.明确 2.强大的模块三方库 3.易移植 4.面向对象 5.可扩展(c\java\c#...) 1.2 Python缺点 1.代码不能加密 2.速度慢 1. ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- JDBC连接数据库演示案例
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- Angular2 模板语法
1. 说明 Angular2的模板用来显示组件外观,作为视图所用,用法和html语法基本一致,最简单的Angular2的模板就是一段html代码.Angular模板语法主要包括以下几个部分: l 直接 ...
- TFS二次开发系列:一、TFS体系结构和概念
TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的 ...
- iOS 线程间共享资源添加排它锁
#import "ViewController.h" @interface ViewController () @property(nonatomic,strong)NSThrea ...