后台用contentresult 返回一个字符串“success”前台jquery.post的回调函数死活不接受但是返回“1234567”却能接收后台代码如下:[HttpPost]public ContentResult DoSelect(string StudentId){string result = "success";return Content(result);//这样前台回调函数不能接受,若result=“1234567”却能}前台代码如下:$.post('doselect', { StudentId: studentid }, function (response) {if (response == 'success')window.location = 'my';elsealert(response);}, "json");//接收不到response,但用chrome看到response了success我怀疑是返回数据的类型问题,但是试过text/json,text/plain都不行!有经验者帮助!
因为你返回的是字符串"success",对于$.post来说,数据类型应该是html。但是你定的$.post数据类型是json。要么把$.post最后的"json"去掉要么return Json(new {result = "success"}),然后在$.post里面用response.result 获取返回值。
试著用console.log 直接将data内容show出来吧。我曾经看过回传的值是长"{\"id\":\"12345\"}"这种形式,正常应该是{"id":"123456"}的既然请求和返回都没问题了,问题肯定是出现在客户端解析上面了,试用用ajax函数然后加个error函数绑定看看是抛出什么错误吧。。。
我今天也遇到了这个问题,需要返回一个json对象,下面这种设置text/json是不起作用的return Content(res,"text/json")应该return Json(object,JsonRequestBehavior.AllowGet)