为啥我的简单 ajax 帖子没有调用 c# web 方法?
Posted
技术标签:
【中文标题】为啥我的简单 ajax 帖子没有调用 c# web 方法?【英文标题】:Why is my simple ajax post not calling the c# web method?为什么我的简单 ajax 帖子没有调用 c# web 方法? 【发布时间】:2019-06-10 21:43:39 【问题描述】:我有一个非常简单的 AJAX Post,它不调用 C# Web 方法。
当我在 JS 中添加断点时,它似乎到达了 AJAX 帖子,但只是退出而不进入 Web 方法。任何见解将不胜感激!
jQuery/AJAX:
$('#btnProcess').click(function ()
for (var i = 0; i < $('#fileList li').length; i++)
fileName = $('#fileList li')[i].innerText.substring(2, $('#fileList li')[i].length)
$.ajax(
type: 'POST',
url: 'Default.aspx/ReadFile',
data: ' fileName: ' + fileName + ' ',
)
)
C#/Web 方法:
[WebMethod]
public static void ReadFile(string fileName)
string file = @"C:\Users\!user.a\" + fileName;
Process.Start(file);
【问题讨论】:
@RyanWilson 我从来没有像你提到的那样格式化 AJAX 帖子。尽管我确实尝试了您的解决方案,但没有成功。 @RyanWilson 不走运。谢谢 你的 readFile 方法没有被调用? @BrunoCaceiro 正确... 【参考方案1】:我通过反复试验找到了答案。在本例中,我必须使用 JSON.stringify 将数据传递给 Web 方法。下面是更新后的JS代码:
$('#btnProcess').click(function ()
for (var i = 0; i < $('#fileList li').length; i++)
fileName = $('#fileList li')[i].innerText.substring(2, $('#fileList li')[i].length)
$.ajax(
type: 'post',
url: 'Default.aspx/ReadFile',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify('fileName': fileName)
)
)
【讨论】:
以上是关于为啥我的简单 ajax 帖子没有调用 c# web 方法?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我总是在这个 ajax 帖子到 php 时得到未定义的响应?
为啥从 ajax 调用 web 服务会引发内部服务器 500 错误?