关于ajax中post请求 与 jquery中的post请求

亮大人 2014-04-02 11:54:56
ajax post请求可正常运行
$.ajax({
type: "Post",
url: "SurveyDetail.aspx/ViewAnswer",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{ 'surveyId': '" + surveyId + "', 'questionId': '" + questionId + "' }",
success: function (data) {
$("#result").html(data.d);
},
error: function (err) {
//alert(err.responseText);
return;
}
});
我想简化代码,然后想使用jquery中的post,但是这样运行失败
$.post("~/Administrator/survey/SurveyDetail.aspx/ViewAnswer", "{ 'surveyId': '" + surveyId + "', 'questionId': '" + questionId + "' }", function (data) {
alert(data);
//$("#result").html(data);
},"json");

请大家帮忙看下,谁遇到过这种问题,怎么解决啊 ?! 赞美好人。。。
...全文
797 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
亮大人 2014-04-03
  • 打赏
  • 举报
回复
引用 10 楼 sibiyellow 的回复:
都说了 你的post的第二个参数的类型不正确,你那个是JSON格式的字符串类型 而他需要的是直接的JSON类型.
我按照你说的改了,还是不行 $.post("SurveyDetail.aspx/ViewAnswer", { "surveyId": surveyId ,"questionId": questionId }, function (data) { alert(data); //$("#result").html(data); }, "json"); 但是走SurveyDetail.aspx这个页面的pageload方法,走不到ViewAnswer方法。 我在SurveyDetail.aspx写了一个 /// <summary> /// 查看问题结果 /// </summary> /// <param name="surveyId"></param> /// <param name="questionId"></param> /// <returns></returns> [WebMethod] public static string ViewAnswer(string surveyId, string questionId) { ....(方法省略) }
天下如山 2014-04-03
  • 打赏
  • 举报
回复
都说了 你的post的第二个参数的类型不正确,你那个是JSON格式的字符串类型 而他需要的是直接的JSON类型.
zhujiazhi 2014-04-03
  • 打赏
  • 举报
回复
引用 8 楼 u012459843 的回复:
[quote=引用 5 楼 zhujiazhi 的回复:] 失败的原因是没有post过去,还是post过去没有数据的?
额,这么说不太准确,我在SurveyDetail.aspx写了一个 /// <summary> /// 查看问题结果 /// </summary> /// <param name="surveyId"></param> /// <param name="questionId"></param> /// <returns></returns> [WebMethod] public static string ViewAnswer(string surveyId, string questionId) { ....(方法省略) } 然后ajax的post就可以直接找到这个方法,但是jquery中的post是走的SurveyDetail.aspx这个页面的pageload方法,走不到ViewAnswer方法。 [/quote] 照你的情况,应该是post过去的了,只是有些参数不对 可以通过firebug看看这两次发的请求的头或者是其它的参数有什么不同的
亮大人 2014-04-03
  • 打赏
  • 举报
回复
引用 5 楼 zhujiazhi 的回复:
失败的原因是没有post过去,还是post过去没有数据的?
额,这么说不太准确,我在SurveyDetail.aspx写了一个 /// <summary> /// 查看问题结果 /// </summary> /// <param name="surveyId"></param> /// <param name="questionId"></param> /// <returns></returns> [WebMethod] public static string ViewAnswer(string surveyId, string questionId) { ....(方法省略) } 然后ajax的post就可以直接找到这个方法,但是jquery中的post是走的SurveyDetail.aspx这个页面的pageload方法,走不到ViewAnswer方法。
亮大人 2014-04-03
  • 打赏
  • 举报
回复
引用 5 楼 zhujiazhi 的回复:
失败的原因是没有post过去,还是post过去没有数据的?
没有post过去
亮大人 2014-04-03
  • 打赏
  • 举报
回复
引用 3 楼 sibiyellow 的回复:

$.post(url,{},function(data{}));
简写的jquery的ajax的post请求中的第二个参数为json格式的数据 如:{ "surveyId": surveyId , "questionId": questionId } 你上面的数据格式写错了(json格式字符串)
我那个就是拼接成json格式的数据,只不过凭借成字符串了 。 因为 surveyId 是字符型,所以才那样写的。
o谢耳朵o 2014-04-03
  • 打赏
  • 举报
回复
$.post("SurveyDetail.aspx/ViewAnswer", { "surveyId": surveyId ,"questionId": questionId }, function (data) { alert(data); //$("#result").html(data); }, "json"); 你当前的文件路径和你要post的文件的所在路径是同一个么?
feiyun0112 2014-04-02
  • 打赏
  • 举报
回复
不能用~,用相对路径,比如"../Administrator/survey/SurveyDetail.aspx/ViewAnswer"
zhujiazhi 2014-04-02
  • 打赏
  • 举报
回复
失败的原因是没有post过去,还是post过去没有数据的?
  • 打赏
  • 举报
回复
url,[data],[callback],[type]String,Map,Function,StringV1.0url:发送请求地址。 data:待发送 Key/value 参数。 callback:发送成功时回调函数。 type:返回内容格式,xml, html, script, json, text, _default。
天下如山 2014-04-02
  • 打赏
  • 举报
回复

$.post(url,{},function(data{}));
简写的jquery的ajax的post请求中的第二个参数为json格式的数据 如:{ "surveyId": surveyId , "questionId": questionId } 你上面的数据格式写错了(json格式字符串)
亮大人 2014-04-02
  • 打赏
  • 举报
回复
引用 1 楼 feiyun0112 的回复:
不能用~,用相对路径,比如"../Administrator/survey/SurveyDetail.aspx/ViewAnswer"
我之前是用的SurveyDetail.aspx/ViewAnswer ,也不行。引用页跟方法页在同一个目录下面

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧