Javascript 类迭代中的属性返回对象而不是字符串
我有多个Javascript 类迭代中的属性返回对象而不是字符串,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有多个divs,它们在我的页面上有一个属性,例如: <div class="followCallout" id="follow_123" data-follow-id="123"> WHATEVER </div> .... <div class="followCallout" id="follow_456" data-follow-id="456"> WHATEVER </div> $url来自这里 但是,我发送的URL如下所示
div
s,它们在我的页面上有一个属性,例如:
<div class="followCallout" id="follow_123" data-follow-id="123">
WHATEVER
</div>
....
<div class="followCallout" id="follow_456" data-follow-id="456">
WHATEVER
</div>
$url
来自这里
但是,我发送的URL如下所示:
http://localhost/cCRM/web/app_dev.php/admin/_ajax/_checkFollow?[对象%20Object]&=1497624513190
因此,它没有给我
checkFollow?id=123
而是给了我checkFollow?[object%20Object]
所以我假设我的ajax调用有什么问题?我在其他部分也使用了完全相同的调用(不使用$。每个调用,仅使用单个调用)。我哪里错了?您确实错了var$url=$(“#ajax路由检查跟随”).val()代码>这不可能是正确的。您需要为每个div构建URL。$('#ajax路由检查follow').val()中的值代码>已经坏了。将对象转换为字符串时会得到[object object]
,因此:“foo”+{}+“bar”
给出“foo[object object]bar”
。%20
是因为字符串得到了URL编码。这可能是一件好事。我使用symfony3,所以我在我的twig模板中生成一个url,并在javascript中获取该url,因为我不知道如何在javascript中获取twig变量(不同的故事)。的val
是/cCRM/web/app\u dev.php/admin/\u ajax/\u checkFollow
,所以它应该没有任何问题吧?我也可以硬编码,同样的输出…只是一个小小的旁注:您正在使用的命名约定,在变量名前加$,应该用于jQuery对象$这很有意义,因为它是一个表示元素的jQuery对象。但是$url和$id不是jQuery对象,它们是基本值——它们也可以是对象,但想法不会改变——如果你想继续下去,我建议你只在变量引用jQuery元素时使用$prefix
function checkFollows() {
var t = setTimeout(checkFollows, 5000);
$('.followCallout').each(function(){
var $that = $(this);
var $id = $that.attr('data-follow-id');
var $url = $('#ajax-route-check-follow').val();
console.log($id); //THIS RETURN 123 etc...
$.ajax({
url: $url,
data: {
id: $id
},
type: "get",
contentType: false,
processData: false,
cache: false,
dataType: "json",
error: function (err) {
},
success: function (data) {
}
});
})
}