创建Ajax调用时,我总是陷入困境。我永远不知道自己错过了什么。我想我已经完成了所有设置,然后它就行不通了。这是一个例子:
var urlStr = '@Url.Action("CallPowerShell", "BuildApp", new { param1 = "CSE", param2 = "", param3 = ""})';
//$.get(url, { param1: "CSE", param2: "", param3: "" }, function (data) {
// $("#tAreaID").html(data);
// debugger;
//});
//debugger;
alert("work");
$.ajax({
type: "GET",
url: urlStr,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function () {
alert("Hey, Hey, Hey")
},
failure: function () {
alert("what is going on here?")
}
});
我的ajax电话,通过简单的检查看起来很好。 我的控制器:
[HttpGet]
public JsonResult BuildApp(string param1, string param2, string param3) {
//ServiceController service = new ServiceController(
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"powershell.exe";
startInfo.Arguments = @"& 'C:\CI\Scripts\CaptivaBuildScript.ps1' ''";
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = false;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
string output = process.StandardOutput.ReadToEnd();
//return ();
return Json(output);
}
我总是想念一些东西。说实话,我不确定这是什么时候?看起来我拥有我需要的一切。但是,当我单击链接时,我从来没有使用该方法来调试那里发生的事情。成功进行Ajax Get / Post调用所需的一切是什么?
答案 0 :(得分:2)
$.ajax没有失败功能。使用错误代替失败。
error:function (){
alert("what is going on here?");
}
您可以随时检查浏览器控制台是否有错误,这有助于找到代码中的错误。
答案 1 :(得分:1)
这是你的错误,你传递的错误,你有错误的参数,而不是控制器名称,你放置了动作,并在行动中你放置控制器这是错误的,这就是为什么你的ajax调用不工作:
var urlStr = '@Url.Action("CallPowerShell", "BuildApp",
new { param1 = "CSE", param2 = "", param3 = ""})';
虽然您的操作名称是BuildApp而不是您的控制器名称,但Url.Action采用第一个参数操作名称和第二个参数控制器:
@Url.Action("ActionName","ControllerName",new {object})
这样做:
var urlStr = '@Url.Action("BuildApp", "CallPowerShell",
new { param1 = "CSE", param2 = "", param3 = ""})';
并始终使用firebug扩展来查看ajax调用的确切情况。
答案 2 :(得分:0)
ajax调用中的url必须是实际的URL字符串,如http://yourdomain.com之类的内容。在客户端,Javascript和jQuery不知道服务器或服务器端脚本语言是什么,所以你必须传递一个理解协议的数据,在这种情况下,URL字符串。
$.ajax({
type: "GET",
url: "http://yourdomain.com",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function () {
alert("Hey, Hey, Hey")
},
failure: function () {
alert("what is going on here?")
}
});