.net framework4.0 下ajax传输出问题
同样的代码,在.net framework3.5 下没有问题,而在 .framework4.0 下,请求没有传输到后台,坐等牛人指教。开发平台 vs2010,
1. 网站属性->选择framework3.5,正常传输到后台;startRequest可以进入断点,ProcessRequest 可以进入断点。
2. 网站属性->选择framework4.0,不能传输到后台;startRequest可以进入断点,ProcessRequest 不能进入断点。
客户端代码:
//ashx 方法调用
function startRequest(strParams) {
createXmlHttp();
var entid="";
if(ashxParamType==ashxParamEnum.showShip)
{
entid="&entid="+strCompany_ID;
}
//使用Get方式
var Queryurl = "FirstPage/QueryHandler.ashx?rnd="+Math.random()+"&major=" + strParams+entid;
xmlHttp.open("POST", Queryurl, true);
xmlHttp.onreadystatechange = bindclass;
xmlHttp.send(null);
}
服务器端代码:QueryHandler.ashx
ajax --------------------编程问答--------------------
public class QueryHandler : IHttpHandler,IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
//majorid,前端传过来的参数,组合参数 (前端js有说明)
string majorid = context.Request.Params["major"].ToString().Trim();
if (!majorid.Contains(DictConst.SPLIT_CHAR_VERTICAL_LINE))
return; //参数格式不合法
switch (majorid.Substring(0, 1))
{......}
}
}
一直用3.5 --------------------编程问答-------------------- 还真不知道这个有啥区别,没用过 --------------------编程问答-------------------- 好像framework4.0 要指定输出类型 --------------------编程问答-------------------- 主要 .net framework 3.5 有个 “IIS短文件名泄露漏洞”,只能升级到 4.0 来解决。 --------------------编程问答--------------------
能具体点么,多谢。。 --------------------编程问答--------------------
context.Response.ContentType="text/xml"
--------------------编程问答--------------------
好像framework4.0 要指定输出类型
能具体点么,多谢。。
context.Response.ContentType="text/xml"
我在 ProcessRequest 里面指定了,但就是在这句上面设断点都没有进去。
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
switch (majorid.Substring(0, 1)) --------------------编程问答-------------------- 你的工程有几个项目
看看你这几个项目的.net 版本 --------------------编程问答--------------------
你的工程有几个项目
看看你这几个项目的.net 版本
和其他项目应该没关系,主要在 ajax 交互这块,就是断点没有进入到后台。。。 --------------------编程问答-------------------- 直接用个jquery,
$.post("url",{参数1:a,参数2:b},function(){})搞定 --------------------编程问答-------------------- 为什么不用JQuery???
--------------------编程问答-------------------- 好像传两个参数以上用'&'有问题。我前面也遇到过. --------------------编程问答-------------------- //使用Get方式
var Queryurl = "FirstPage/QueryHandler.ashx?rnd="+Math.random()+"&major=" + strParams+entid;
xmlHttp.open("GET", Queryurl, true);
xmlHttp.onreadystatechange = bindclass;
xmlHttp.send(null);
//使用POST方式
xmlHttp.open("POST","FirstPage/QueryHandler.ashx",true);--------------------编程问答-------------------- LZ结贴啊。 。 --------------------编程问答-------------------- 感谢大家的回复,问题解决了,在web.config 中添加
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlHttp.send("rnd="+Math.random()+"&major=" + strParams+entid);
<httpRuntime requestValidationMode="2.0" />
这样可以使用 2.0 下的验证模式
补充:.NET技术 , ASP.NET