-3

如何将数据属性转换为有效的发布(或获取)数据?

$('#nav').find('a').click(function(){
    var params = $(this).data();
    $.get({
        type: "get",
        url: "/view/",
        data: params
    });
})

我收到此错误:

POST http://127.0.0.1/Site1/%5Bobject%20Object%5D/ 404 (NOT FOUND) 
4

4 回答 4

2

您可以使用jQuery.param()

$('#nav').find('a').click(function(){
    var params = $(this).data();
    params = $.param(params);
    $.ajax({
        type: "GET"
        url: "/view/",
        data: params
    });
})

编辑:

实际上问题是您使用的是$.get()方法,例如$.ajax()

$.get()不接受 ajax 设置对象。将其更改为 $.ajax() ,而不需要使用参数。

jsFiddle 演示

于 2013-05-21T12:55:18.870 回答
1

我认为这应该有效:

$('#nav').find('a').click(function(){
    var params = $(this).data();
    $.get("/view/",params,function(){
        //success callback
    });
})
于 2013-05-21T12:58:31.603 回答
0

在没有看到 html 的情况下,回答这个问题变得更加困难,但请尝试这样的事情。$.post('YourUrl', { paramName : $("elementID").val(), paramName2 : $("#elementId").attr("data")}, function(data){ DoSuccessHere });

于 2013-05-21T12:55:34.733 回答
-1

jQueryget函数接受一个对象作为其数据参数,即

$('#nav').find('a').click(function(){
    var params = {
        param1: 'foo',
        param2: 'bar';
    }
    $.get({
        type: 'get',
        url: '/view/',
        data: params
    });
});

您可以通过这种方式从多个数据源分配多个值,例如

var params = {
    id: $(this).id(),
    name: $(this).attr('name');
}
于 2013-05-21T12:53:59.990 回答