From 5f7f3885e4b4f2d7ab86d0ef53609c76233b075f Mon Sep 17 00:00:00 2001 From: maliming Date: Wed, 25 Nov 2020 22:05:32 +0800 Subject: [PATCH] Set dataType to text for string return values for dynamic JavaScript proxies. Resolve #6328 And put the ajaxParams to the last. --- .../JQuery/JQueryProxyScriptGenerator.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs index 7f9672ce69c..8cb92c67668 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs @@ -25,7 +25,7 @@ public string CreateScript(ApplicationApiDescriptionModel model) script.AppendLine("/* This file is automatically generated by ABP framework to use MVC Controllers from javascript. */"); script.AppendLine(); - + foreach (var module in model.Modules.Values) { script.AppendLine(); @@ -99,9 +99,12 @@ private static void AddActionScript(StringBuilder script, string controllerName, AddAjaxCallParameters(script, action); var ajaxParamsIsFromForm = action.Parameters.Any(x => x.BindingSourceId == ParameterBindingSources.Form); + var dataType = action.ReturnValue.Type == ReturnValueApiDescriptionModel.Create(typeof(string)).Type + ? "{ dataType: 'text' }, " + : string.Empty; script.AppendLine(ajaxParamsIsFromForm - ? " }, $.extend(true, {}, ajaxParams, { contentType: 'application/x-www-form-urlencoded; charset=UTF-8' })));" - : " }, ajaxParams));"); + ? " }, $.extend(true, {}, " + dataType + "{ contentType: 'application/x-www-form-urlencoded; charset=UTF-8' }, ajaxParams)));" + : " }, " + dataType + "ajaxParams));"); script.AppendLine(" };"); } @@ -159,7 +162,7 @@ private static void AddAjaxCallParameters(StringBuilder script, ActionApiDescrip script.Append(" data: " + formData); } } - + script.AppendLine(); } @@ -191,7 +194,7 @@ private static Dictionary CalculateNormalized return result; } - + private static void AddInitializedEventTrigger(StringBuilder script) { script.AppendLine(); @@ -213,4 +216,4 @@ private static string CamelCaseWithNamespace(string name) return name.Split('.').Select(n => n.ToCamelCase()).JoinAsString("."); } } -} \ No newline at end of file +}