Ajax转到[object%20Object]

时间:2011-08-29 11:00:32

标签: jquery

我只是想做一个像这样的简单请求:

    $('.asd').change(
        function () {
            $.ajax({
                url: 'http://127.0.0.1/folder/index.php/controller/action/integer',
                success: function(data){}
            });
        }
    );

此代码尝试转到http://127.0.0.1/folder/index.php/controller/[object%20Object]并获取404.它从哪里拉出对象?我正在使用一个简单的字符串。

5 个答案:

答案 0 :(得分:18)

对我来说问题是我使用的是$.post而不是$.ajax

// fails:
$.post({
    url: "/example/" + this.id,
    // ...
});

// works:
$.ajax({
    url: "/example/" + this.id,
    // ...
});

答案 1 :(得分:7)

public async Task<ActionResult> ClaimDetail() { /* ... */ } 需要参数图。 ajax需要单个参数:

post

答案 2 :(得分:4)

我遇到了同样的问题并且一直在寻找答案。不幸的是,这个贡献者从来没有回来过。我是一个愚蠢的错误。从Ajax返回后,我在一个保留字后无意中命名了我的变量。这就是我所拥有的:

$.post('/MyApp.php', { param: 'getLocation' },
  function(xml) {
    location=$(xml).find('Location');
  }
});

像这样编码,从Ajax返回后,页面被重定向到http:// myurl / [Object%20object],现在非常有意义。

解决方案:将“location = $ ...”更改为“clocation = $ ...” 希望这个答案可以帮助别人。调试很难。

答案 3 :(得分:2)

对我来说,在Play中工作并使用jsRoutes这一点非常痛苦。

似乎Play(javaScript)将使用以下语法无问题地执行Ajax GET:

$.ajax(jsRoutes.controllers.MyController.ajax(inurlparam))
.done(function(data) {
  }).fail(function(data) {
  })

然而(这里是令人讨厌的部分)...如果你想进行POST,你需要首先在URL上使用absolutURL()方法来获取ajax(或post)不包含{ {1}}在发布时间进入网址。没有多少调试网址或表格参数似乎表明发生了什么,也没有原因。我只是完全“猜到”这个解决方案是出于纯粹的挫败感。 PS:注意[object%20Object]末尾的括号 - js人们会立即得到那些意思“做”这个功能,而不仅仅是把它传递给它。

absolutURL()

我在这里回答这个问题,因为这是谷歌引领我的地方,一旦我终于意识到它可能不是我编码导致问题:)

答案 4 :(得分:0)

您必须将文本反序列化为Number(Int):

var ID = parseInt( 
$(this)
  .closest("tr") //tr of DataTable 
  .find("td") //td of ....
  .eq(0)
  .text(),
10 
);