Javascript asp.net ashx处理程序:无法接收响应

Javascript asp.net ashx处理程序:无法接收响应,javascript,jquery,asp.net,ajax,ashx,Javascript,Jquery,Asp.net,Ajax,Ashx,大家好,谢谢你们抽出时间。 以下是我的javascript: $('.sender').click(function (e) { $.ajax({ type: "POST", url: "fHandler.ashx", data: { firstName: 'stack', lastName: 'overflow' }, // DO NOT SET CONTENT TYPE to json //

大家好,谢谢你们抽出时间。 以下是我的javascript:

$('.sender').click(function (e) {       
    $.ajax({
        type: "POST",
        url: "fHandler.ashx",
        data: { firstName: 'stack', lastName: 'overflow' },
        // DO NOT SET CONTENT TYPE to json
        // contentType: "application/json; charset=utf-8", 
        // DataType needs to stay, otherwise the response object
        // will be treated as a single string
        dataType: "json",
        success: function (response) {
            alert('success');
        },
        error: function (response) {
            alert('error: ' + response);
            console.log('err: '+response);
        }
    });                    
});
下面是我的.ashx处理程序中的代码:


当click事件工作时,我的Ajaxrequest似乎没有得到任何响应,因为成功时不会弹出警报。我已经使用浏览器的网络控制台进行了调试,它返回了预期的响应,但在JavaScript代码中似乎没有达到success函数。欢迎提出任何见解或建议。谢谢。

如果您仍然对答案感兴趣,请在执行请求之前尝试此选项

var data = { firstName: 'stack', lastName: 'overflow' };
var jsonData = JSON.stringify(data);
并将AJAX请求更改为

$.ajax({
    type: "POST",
    url: "fHandler.ashx",
    data: jsonData,
    dataType: 'json',
    contentType: 'application/json; charset-utf-8'
})
.done(function (response) {
    // do something nice
})
.fail(function (jqXHR, textStatus, errorThrown) {
    console.log("request error");
    console.log(textStatus);
    console.log(errorThrown);
});
解释

您正在尝试发送普通数据对象。必须使用Json.stringifyobject将其转换为Json字符串

更改数据类型并不是一个真正的解决方案,而是一种变通方法

附加说明


另外,我认为你应该使用.done和.fail。有关详细信息。

单个字符串不是有效的json。添加错误处理程序会有所帮助。同时检查cluesI浏览器控制台的“网络”选项卡中的请求我已经编辑了我的帖子,我仍然无法让那个警报弹出。然而,这些帖子确实返回了200个响应状态。在更改数据类型:text之后,它开始工作了
$.ajax({
    type: "POST",
    url: "fHandler.ashx",
    data: jsonData,
    dataType: 'json',
    contentType: 'application/json; charset-utf-8'
})
.done(function (response) {
    // do something nice
})
.fail(function (jqXHR, textStatus, errorThrown) {
    console.log("request error");
    console.log(textStatus);
    console.log(errorThrown);
});