将Param发送到jQuery的Ajax无效
Sending Param to the Ajax of jQuery not effective
我正在尝试使用jQuery的Ajax,下面有这段代码,虽然我在firebug中没有得到错误,但它不起作用,代码后面的函数似乎没有得到任何参数。
(document).ready(function () {
$("#S1").click(function
() {
$("#t1").toggle("fast");
$("#P1").toggle("fast");
$("#S1").css("background-color", "White");
var ID = $("#HiddenField1").attr("Value");
var params = { 'Key': ID };
$.ajax({
type: "POST",
url: "viewMessages.aspx/readen",
data: params,
dataType: "json"
});
});
});
这是背后的代码
[WebMethod(EnableSession = false)]
public static void readen(string Key)
{
DBController db = new DBController();
db.ReadenMes(Convert.ToInt32(Key));
}
下面的代码可以工作,但由于我想在IE 6中使用它,我必须使用上面的代码。
$(document).ready(function () {
$("#S2").click(function
() {
$("#t2").toggle("fast");
$("#P2").toggle("fast");
$("#S2").css("background-color","White");
var ID = $("#HiddenField2").attr("Value");
var params = new Object();
params.Key = ID;
var myJSONText = JSON.stringify(params);
$.ajax({
type: "POST",
url: "viewMessages.aspx/readen",
data: myJSONText,
contentType: "application/json",
dataType: "json"
});
});
});
你认为我哪里做错了?
将jQuery与ASP.NET AJAX 一起使用时要避免的3个错误
$(document).ready(function () {
$("#S1").click(function
() {
$("#t1").toggle("fast");
$("#P1").toggle("fast");
$("#S1").css("background-color", "White");
var ID = $("#HiddenField1").val();
var params = "{ 'Key':'" + ID + "'}"; //changes here
$.ajax({
type: "POST",
url: "viewMessages.aspx/readen",
data: params,
dataType: "json",
contentType: "application/json; charset=utf-8"
});
});
});
如果你的问题只是IE6没有JSON.stringify方法,那么你可以使用Douglas Crockford的json2.js,那么你的第二个样本也应该在IE6中正常工作。
$(function () {
$("#S2").click(function
$("#t2").toggle("fast");
$("#P2").toggle("fast");
$("#S2").css("background-color","White");
var ID = $("#HiddenField2").attr("Value");
var myJSONText = JSON.stringify({ Key: ID });
$.ajax({
type: "POST",
url: "viewMessages.aspx/readen",
data: myJSONText,
contentType: "application/json",
dataType: "json"
});
});
});
另一种方法是不要使用"json"数据类型,然后params应该序列化为常规查询字符串。
$(function () {
$("#S2").click(function
$("#t2").toggle("fast");
$("#P2").toggle("fast");
$("#S2").css("background-color","White");
var ID = $("#HiddenField2").attr("Value");
var params = { Key: ID };
$.post("viewMessages.aspx/readen", params);
});
});
var ID = $("#HiddenField2").val();
$.ajax({
type: "POST",
url: "viewMessages.aspx/readen",
data: {"KEY":ID},
contentType: "application/json",
dataType: "json"
});
此外,您不需要对数据组件进行字符串化,也不需要声明新的Object。
相关文章:
- $.Ajax投掷“;无效的参数"在IE9上
- AJAX:无效的JSON响应
- 异步HTTP(ajax)请求在脚本标记中有效,但在js文件中无效
- jquery ajax中的无效返回
- 如何更新列表项由jQuery AJAX调用添加的ASP Dropdown:错误无效的回发或回调
- 从AJAX调用Php函数无效
- Symfony2 动态表单修改 ajax jquery 无效的 CSRF 令牌
- AJAX 调用:无效的 Web 服务调用,缺少参数值
- 为什么 AJAX 对第一个函数的响应“_blank”有效,但对第二个函数无效
- jQuery ajax 请求有效,相同的 AngularJS ajax 请求无效
- 如何删除在 Ajax文件上传上出现无效格式的默认警报
- ajax 无效的 json,为什么这个 JSON 无效
- 通过AJAX提交表单无效
- Getting TypeError:无效'在'使用ajax获取数据时的操作数obj
- Ajax自动完成扩展器防止在文本框中键入无效值
- Facebook API-FB.API()调用有效,但AJAX请求无效
- 标准的XMLHttpRequest有效,但在发布到REST服务时jQuery$.ajax无效
- $.ajax调用有效,$http.get()无效(404,未找到)
- 无效的geoJson对象-传单和Ajax
- 将Param发送到jQuery的Ajax无效