【发布时间】:2015-08-17 09:36:12
【问题描述】:
我有一个 ASP.NET 应用程序通过 AJAX 将数据发送到我的应用程序的处理程序。 这在本地调试时可以正常工作,但是一旦我将解决方案部署到服务器,处理程序只会收到一个空字符串。我尝试摆弄 contentType 和 dataType,但没有运气。
这是我目前的代码。
发送页面的aspx,而“myData”是一个简单的字符串:
$.ajax({
type: "POST",
url: "handlers/changeRiskGroup.ashx",
data: myData,
// tried all those content/dataTypes without any luck
//contentType: "text/plain",
//dataType: "text",
//contentType: "application/json; charset=utf-8",
//dataType: "json",
error: function (xhr, status, error) {
console.log(xhr.responseText);
},
success: function (msg) {
console.log(msg);
}
});
.ashx.cs 的接收处理程序:
public void ProcessRequest(HttpContext context) {
//string data = new StreamReader(context.Request.InputStream).ReadToEnd();
var data = String.Empty;
context.Request.InputStream.Position = 0;
using(var inputStream = new StreamReader(context.Request.InputStream)) {
data = inputStream.ReadToEnd();
}
if (data != "") {
// doing something with my data here.
// this is never reached while on the server, but works fine locally!
} else {
context.Response.Write("Please supply data to the risk group service!");
}
}
public bool IsReusable {
get {
return false;
}
}
}
.ashx.cs 文件中的data 变量在本地调试时填充,但在服务器上总是“”。我不知道为什么。
【问题讨论】:
-
您是否验证了客户端(Jquery)是否正在使用 Fiddler 向已部署的版本发送相同的数据?
-
您的本地设置是否与服务器上的设置相同?如果您使用相同的代码和相同的浏览器,那么您正在使用的服务器配置不同是可行的,这就是需要更新或摆弄的地方
-
你能举例说明
myData的值吗? -
@Mendhak - 是的,发送页面有正确的数据,我刚刚使用 fiddler 进行了验证。
-
@ZathrusWriter - 到目前为止是的。哪些设置主题会影响到服务器的 POST?