asp.net ashx处理程序:can't接收响应
asp.net ashx handler: can't receive response
大家好,感谢您抽出时间。这是我的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
处理程序中的代码:
public void ProcessRequest(HttpContext context)
{
context.Response.AppendHeader("Access-Control-Allow-Origin", "*");//to fix the allow origin problem
context.Response.ContentType = "text/plain";
string json = new StreamReader(context.Request.InputStream).ReadToEnd();
context.Response.Write(json);
}
public bool IsReusable
{
get
{
return false;
}
}
当点击事件工作时,我的Ajax
请求似乎没有得到任何响应,因为成功时的警报不会弹出。我已经使用浏览器的网络控制台进行了调试,它返回了预期的响应,但似乎没有达到JavaScript
代码中的成功函数。欢迎任何见解或建议。谢谢
如果您仍然对答案感兴趣,请在进行请求之前尝试此操作
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);
});
解释
您正在尝试发送纯data
对象。必须使用JSON.stringify(object)
将其转换为Json字符串。
更改dataType并不是真正的解决方案,而是一种变通方法。
附加说明
此外,我认为您应该使用.done()
和.fail()
。请参阅此处了解更多详细信息。
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- 响应动画手风琴不工作
- 如何从SeleniumWebdriver获取异步Javascript响应
- Ajax调用在Firefox中不会自动响应
- 可以在响应时隐藏iphone上的“播放”按钮以进行视频播放
- 角度ng变化或ng点击选择can'不起作用
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- asp.net ashx处理程序:can't接收响应
- 如何使用 {can.route} 侦听和响应空白路由
- Javascript获取api:Can't检索某些响应标头
- Node.js请求-Can't获取REST响应(JSON)的属性
- JavaScript/jQuery:Can´t得到“;WWW认证”;响应标头
- JQuery:Can't禁用Ajax响应的元素
- 错误:Can't设置发送后的标头.RabbitMQ干扰NodeJS响应