已解决问题

收藏

关于jquery ajax中返回值的问题

80

[ 标签:jquery,&nbspajax ]

conn.open();

我的星星页面

2009-10-25 11:52

JQuery Code:

$.ajax({

type: "POST",

url: "SourceCode/checkLoginInfo.aspx/checkGeneralUser",

data: "{userName:'" + $("#userName").val() + "',userPassword:'" + $("#userPassword").val() + "'}",

contentType: "application/JSON; charset=utf-8",

timeout: 1000,

dataType: "JSON",

error: function() { $("#message").html("错误") },

success: function(msg) { $("#message").html(msg);}

});C# Code:

public static string checkGeneralUser(string userName, string userPassword)

{

string msg;

string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString();

string commStr = "select * from userInfo where userName = '" + userName + "'";

SqlConnection conn = new SqlConnection(connStr);

conn.Open();

SqlCommand comm = new SqlCommand(commStr, conn);

SqlDataReader dr = comm.ExecuteReader();

if (dr.Read())

{

if (dr["userPassword"].ToString().Trim() != userPassword)

{

msg = "密码错误!";

}

else

{

msg = "OK";

}

}

else

{

msg = "用户名错误!";

}

dr.Close();

conn.Close();

return msg;

}返回结果:{"d":"用户名错误!"},怎么不单单是我后台代码中返回的字符,为什么还有{}""..这些特殊符号!!

满意答案

好评率:100%

可以作为字符返回的。

你可以将提交的页面的所有网页代码删除。然后用 Response.Write("你想返回的字符");

这样客户端的ajax就只是收到你想返回的字符串了。

继续追问:

但是我是调用后台代码中的方法啊!怎么能将结果输出到页面上呢!还有,我不可能在一个页面中只写一个方法啊!

补充回答:

该答案是回答你对conn.open()的追问。

思路就是 让整个网页 = 你想返回的信息

呵呵

继续追问:

不是,我不想返回整个页面,我只想让她返回C#代码中的方法return出来的值!我现在是这个值我能接收到,但是他多出那些{}""这些特殊符号出来了!我C#代码中返回的是:用户名错误!,但是当succcess中的回调函数接收到的确是:{"d":"用户名错误!"}

补充回答:

1. Respone.Write就是将结果输出成页面内容,C#后台和前台是联系的。

2.如果不想一个页面只能写一个方法的话,那么就在这个方法里面,把return msg改为

Response.Write(msg);

Response.Flush();

Response.End();

继续追问:

无法在方法中调用Response对象

补充回答:

另一种方法就是在客户端解析json对象:

var obj = eval(msg);

var message = obj.d;

或者直接就msg.d也可以?

继续追问:

我也试了!!加了.d之后毛后不回来了!!

补充回答:

我的意思是,保持contentType: "application/JSON; charset=utf-8",和dataType: "JSON", 不变,按你原先的描述,返回的结果是{"d":"用户名错误!"}。

那么对于这个结果,你把它当作一个对象,然后取这个对象的属性d的值就行了。

就是我上面写的

var obj = eval(msg);

var message = obj.d;

只要你保证msg = {"d":"用户名错误!"} ; 那么message肯定是"用户名错误!"。 这个不应该有什么问题啊。

继续追问:

这是msg得结果

这是msg.d得结果返回是undefined

补充回答:

先使用

var obj = eval(msg);

alert(obj);

看看?

继续追问:

eval()不是将参数作为javascript代码来执行么?{"d":"用户名错误!"}这样一段代码,在javascript里面是执行不出效果来吧?

补充回答:

{"d":"用户名错误!"} 可能仅仅是一个字符串,因此,你对一个字符串使用msg.d当然是undefined。

但是你把这个字符串转为javascript对象的话,就可以使用.d属性了。

而将字符串转为javascript对象的方法就是使用eval。

继续追问:

我晕,我直接

var obj = eval({"d":"用户名错误!"});

alert(obj.d);能正确的返回了!

但是

var obj = eval(msg);

alert(obj.d);又没结果了!

我有测试了msg的值,直接alert(msg);返回的值也是{"d":"用户名错误!"},真是郁闷!

补充回答:

你的写法错误。({"d":"用户名错误!"} 本身就是一个对象了,不需要加上eval来处理。应该在它外面加上' '才是字符串。我刚才试验了一下,变成字符串后不知道为什么eval失败了。不过我们可以用另一个函数JSON.parse来完成同样的工作。

var msg = '{"d":"用户名错误!"}';

var obj = JSON.parse(msg);

alert(obj.d);

该代码在我本机已测试通过。

继续追问:

哈哈!哥们!行了!!非常感谢!

补充回答:

eval失败的问题我弄明白了。正确的写法应该是:

var obj = eval( "(" + msg + ")" );

必须把字符串整个用()括起来,这样才保证不会因为字符串里带了"",{ } , []这些符号而失败。

您已经评价过!

您已经评价过!

您已经评价过!

您已经评价过!

conn.open();的感言:

哈哈!非常感谢

收藏

分享到:

更好的回答

其他答案(2)

因为你设置了contentType: "application/JSON; charset=utf-8",和dataType: "JSON",

所以它会把返回的对象做json对象处理

你去掉这两行,就是字符串了

就不会有json对象中的{}等符号了

继续追问:

作为字符返回的话,整个网页都返回来了!- -!

补充回答:

嗯,这个有两种解决方案

第一:就是删除页面中html标签,只留头信息

第二:就是在response.write();后面加上response.end();代码

您已经评价过!

您已经评价过!

把dataType: "JSON", 改成 dataType: "html", 试试~

继续追问:

没用!!上面说的我都试过了!

您已经评价过!

您已经评价过!

jq中ajax的res是什么意思,关于jquery ajax中返回值的问题相关推荐

  1. 反射 -- 业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。...

    package demo; //业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法. import java.lang.reflect.Method; import java.u ...

  2. $.ajax datatype默认是什么类型,理解jquery ajax中的datatype属性选项值

    jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字 ...

  3. mvc ajax提交多选,javascript – 如何使用Jquery AJAX调用MVC Action然后在MVC中提交表单?...

    在我的MVC视图我有按钮: 当我点击这个按钮我需要调用一个动作,做一些东西,然后提交我的表单. 我有这个jQuery: $('#btnSave').click(function () { $.ajax ...

  4. ajax jquery return没有返回值

    错误写法: function editdivisionmember(division_id,users_id){$.ajax({type:"POST",url:"/def ...

  5. ajax 更新页面变量,[Django 1.5] jQuery/Ajax 在Django使用 ,如何更新模板里里变量

    最近希望实现一个页面局部刷新的功能,于是开始查阅ajax资料.幸好现在ajax很多功能都封装在jQuery这个库里面,我们可以很方便去调用.通过学习几个简单的小例子,可以实现简单的前端代码更新,还有重 ...

  6. ajax点击事件无法触发,解决jQuery Ajax动态新增节点无法触发点击事件的问题_婳祎_前端开发者...

    在写ajax加载数据的时候发现,后面添加进来的demo节点元素,失去了之前的点击事件.为什么点击事件失效,我们该怎么去解决呢? 其实最简单的方法就是直接在标签中写οnclick="" ...

  7. ajax三种错误ie,ie下jquery ajax 80020101错误的解决方法

    注意注释 删除这些注释就可以了 Windows下一个MySQL有些错误的解决方法 1.无论是什么提示.我们有一个直接看错误日志.由于它描述了最具体描述错误日志. 于MySQL安装文件夹中找到 my.i ...

  8. ajax拒绝访问,带CORS的IE9 jQuery AJAX返回“访问被拒绝”

    带CORS的IE9 jQuery AJAX返回"访问被拒绝" 以下适用于IE以外的所有浏览器(我在IE 9中测试).jQuery.support.cors = true;... $ ...

  9. ajax调用ashx的方法,jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

    1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是&q ...

最新文章

  1. GitHub开源比Hadoop快至少10倍的物联网大数据平台
  2. 解题报告(五)组合计数(ACM / OI)超高质量题解
  3. 强化学习笔记4:强化学习分类
  4. Qt小游戏《2048》源码(含大量注释)
  5. consul之:ACL配置使用
  6. day18 面向对象
  7. DOS批处理高级教程精选(二)
  8. linux lvm界面,Linux使用入门教程之LVM
  9. Asp.net MVC - 使用PRG模式(附源码)
  10. HtmlDocument.ExecCommand() 方法
  11. 音视频入门-流媒体原理
  12. 新版微信文件夹路径FileStorage变成了MsgAttach
  13. 电子元器件识别(图解)
  14. 每天一本书 [2014/06/10-2014/07/10 ]
  15. 【区块链】使用 Fabric 测试网络
  16. 双目结构光系统论文阅读总结
  17. android lottie字体json,android:Lottie--让Android动画更优雅
  18. S7-PLCSIM Advanced V3.0下载仿真失败
  19. Uniapp uni-app学习与快速上手
  20. 团队Github作业--考研破壁机

热门文章

  1. java math pow_Java Math pow() 使用方法及示例
  2. 字符串大小写转换器(html+css+js)
  3. 计算机视觉及模式识别技术在农业领域的应用
  4. 如何选择“好公司”和“便宜的好公司”!股票量化分析工具QTYX-V2.2.0
  5. 信息系统监理师题库_2018年下半年上午-信息系统监理师-软考(考试真题及答案-完整版)...
  6. matlab养老保险问题,养老保险MATLAB程序.doc
  7. python 爬取图片
  8. WPF滚动条自动下拉实现
  9. java依赖注入inject_@inject依赖注入的过程
  10. python笔记(九):字符串str查询、大小写传唤、拆分、替换、切割