Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax将转到[object%20Object]_Jquery - Fatal编程技术网

Jquery Ajax将转到[object%20Object]

Jquery Ajax将转到[object%20Object],jquery,Jquery,我只是想做一个简单的请求,像这样: $('.asd').change( function () { $.ajax({ url: 'http://127.0.0.1/folder/index.php/controller/action/integer', success: function(data){} }); } ); 此代码尝试转到

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

    $('.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。它从哪里拉物体?我用的是一个简单的字符串。

我也遇到了同样的问题,于是我到处寻找答案。不幸的是,这位撰稿人从未回来过。我犯了一个愚蠢的错误。从Ajax返回时,我无意中使用了以保留字命名的变量。以下是我所拥有的:

$.post('/MyApp.php', { param: 'getLocation' },
  function(xml) {
    location=$(xml).find('Location');
  }
});
这样编码,从Ajax返回后,页面被重定向到http://myurl/[Object%20object]现在非常有意义

解决方案:将“location=$…”更改为“clocation=$…”
希望这个答案能帮助其他人。这是一个很难调试的问题。

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

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

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

ajax
需要一个参数映射。
post
需要单个参数:

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

// works:
$.post("/example/" + this.id);

对我来说,在游戏中工作和使用jsRoutes是非常痛苦的

似乎Play(javaScript)将使用以下语法执行Ajax GET而不会出现问题:

$.ajax(jsRoutes.controllers.MyController.ajax(inurlparam))
.done(function(data) {
  }).fail(function(data) {
  })
然而(这里是令人讨厌的部分)。。。如果您希望发布文章,您需要首先在URL上使用
absolutURL()
方法,以使ajax(或POST)在发布时不将
[object%20Object]
包含到URL中。对url或form params进行的大量调试似乎都不能说明发生了什么,也不能说明原因。我只是纯粹出于沮丧而“猜测”这个解决方案。注:请注意
absolutURL()
--js结尾的括号,人们会立即得到那些表示“执行”函数的括号,而不仅仅是将句柄传递给我

  var url = jsRoutes.controllers.MyController.ajaxPost(inurlparam).absoluteURL();
  var formData = $('#form').serialize();
  $.ajax({
    url: url,
    type: "POST",
    data: formData
  }).done(function(data) {
  }).fail(function(data) {
  })

我在这里回答这个问题,因为当我最终意识到可能不是我的编码导致了这个问题时,谷歌就是这样引导我的:)

你必须将文本反序列化为数字(Int):


你的内容类型是什么?你的数据在哪里。这是您完整的ajax请求吗?粘贴
$的完整代码。ajax
此处不相关的可能副本:用户尚未定义任何变量。使用全局变量完全是你的错。考虑到Dave只是在一个相对老的问题上说了些什么,有点苛刻。我的问题是URL的构造不正确。这也是OP的问题,可能是通过重定向或者他无意中从代码示例中漏掉了一些东西。是的,但是如果你没有将type设置为'POST',这是一个http GETI,在使用
$时遇到了一个问题。ajax({type:'POST'.})
实际上使用的是GET-非常奇怪。我转而使用
$.post()
,犯了与上面相同的语法错误。对于
$.post()
,第一个参数是URL字符串,后跟一个对象-这与速记版本
$.ajax()
的语法略有不同。干杯。我又一次被它咬了一口,我很高兴我记得记录了它:)这个项目可以用本文将项目从文本解析为int
var ID = parseInt( 
$(this)
  .closest("tr") //tr of DataTable 
  .find("td") //td of ....
  .eq(0)
  .text(),
10 
);