我同样一段代码,导入的Jquery库版本不一样而导致我的ajax方法调用后台失败
我的asp.net前台代码如下:
<script type="text/javascript">
$(function() {
$("#test1").click(function() {
$.ajax({
//要用post方式
type: "POST",
//方法所在页面和方法名
url: "JQueryAjax.aspx/SayHello",
contentType: "application/json;utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
},
error: function(err) {
alert(err);
}
}); //禁用按钮的提交
return false;
});
}); </script></head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="test1" runat="server" Text="TestAjax1" />
</div>
</form>
</body>
</html>后台代码如下:
[System.Web.Services.WebMethod]
public static string SayHello()
{
return "Hello Ajax!";
}
我用 <script src="../Jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
就不会进入后台方法中,会进入ajax的error中,
但是我用 <script src="../Jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
就能进入后台的方法中,返回“Hello Ajax”这是什么原因啊?为什么Jquery的版本会存在这样的差异啊,求大侠指点迷津啊……
我的asp.net前台代码如下:
<script type="text/javascript">
$(function() {
$("#test1").click(function() {
$.ajax({
//要用post方式
type: "POST",
//方法所在页面和方法名
url: "JQueryAjax.aspx/SayHello",
contentType: "application/json;utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
},
error: function(err) {
alert(err);
}
}); //禁用按钮的提交
return false;
});
}); </script></head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="test1" runat="server" Text="TestAjax1" />
</div>
</form>
</body>
</html>后台代码如下:
[System.Web.Services.WebMethod]
public static string SayHello()
{
return "Hello Ajax!";
}
我用 <script src="../Jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
就不会进入后台方法中,会进入ajax的error中,
但是我用 <script src="../Jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
就能进入后台的方法中,返回“Hello Ajax”这是什么原因啊?为什么Jquery的版本会存在这样的差异啊,求大侠指点迷津啊……
解决方案 »
- js函数传入多级菜单项 大家参谋下
- 正则表达式中的正向预查?
- 获取滚动条的位移
- 紧急求助:一个多选列表框的内容,选中后,如何进入到,一个多行文本框内!!!!!!!!!!!!(工作中的实际问题!)
- 对话框的状态栏为什么关不掉?但Maxthon上又可以?
- 谁有64位的操作系统,且安装了64位的IE
- 想实现一个功能 当选择表单select0里边的“产品分类“,然后自动探出另外一个select1表单,选择select1表单里边的分类信息搜索,选择表单
- 郁闷!!这到底是怎么回事!!
- 当单击了一个<a herf="xx" onclick="getpath();></a>链接后,去到javascript的函数中执行得到一个绝对路径,此时xx变成了"c:\x.doc",但
- form表单的fieldset标签legend的问题
- Firefox 取编辑框内容
- js关于索引的问题。希望不要沉,希望好多人回答,希望标题短一点
alert(err.responseText);//看输出什么,猜测是1.3未设置响应头什么的,导致.net没有放回json格式的是数据
}
dataType: "json" 改成 dataType: "text"或者干脆去掉这一行
单你返回的不是 json啊你返回一个 json 字符串 看看报错不之后再调试下js看看 jquery怎么处理返回数据的
其次,在方法上加上声明[ScriptMethod(ResponseFormat = ResponseFormat.Json)]以返回json数据
虽然1.6也早就出了,而1.4.2也曾经保持为一个成熟稳定的版本有很长一段时间,建议你优先选择。一般新版本会比旧版本更好,解决了很多bug。
除非特别注重稳定性而需要成熟的版本,或者新版本对旧版本功能做了破坏性的修改,为了兼容性可以选择旧版本。
{"A":"B"}
而不能是
{A:"B"}这样不加引号
昨天遇到这个问题了,1.4里面dataType: "json",这个JSON要大写的,你可以试下