JQuery ajax调用参数不起作用

时间:2013-07-17 12:31:47

标签: jquery asp.net ajax webmethod pagemethods

我做了一个jquery ajax调用来调用静态page method。它没有任何参数正常工作。但是,如果我输入参数,那么它不会调用该页面方法。我有以下代码。

JAVASCRIPT

        $.ajax({
        type: 'POST',
        url: 'ItemMaster.aspx/UploadFile',
        contentType: 'application/json; charset=utf-8',
        data: {'path':'mydata'},
        dataType: 'json',
        success: function (msg) {
            alert(msg.d);
        }
    });

PAGE METHOD

    [WebMethod]
    public static string UploadFile(string path)
    {
        return "Success";
    }

是否发生datatype不匹配?我热身谷歌一段时间没有任何成功。请帮忙..

2 个答案:

答案 0 :(得分:2)

您的数据对象必须是JSON字符串。尝试

var dataToSend = JSON.stringify({'path':'mydata'});

$.ajax({
    type: 'POST',
    url: 'ItemMaster.aspx/UploadFile',
    contentType: 'application/json; charset=utf-8',
    data: dataToSend,
    dataType: 'json',
    success: function (msg) {
        alert(msg.d);
    }
});

如果您支持旧浏览器,请务必添加JSON.js。

答案 1 :(得分:1)

您发送的数据不是json。删除内容类型,或将数据转换为json。

我会移除内容类型。

$.ajax({
    type: 'POST',
    url: 'ItemMaster.aspx/UploadFile',
    data: {path:'mydata'}, // you may need to remove the quotes from path here
    success: function (msg) {
        alert(msg.d);
    }
});