Jquery 通过数组的each()循环更改查询字符串
我在我的代码中发现了一个奇怪的错误,我找不到哪里出了问题。我使用以下函数在jQuery中循环一个数组:Jquery 通过数组的each()循环更改查询字符串,jquery,ajax,query-string,each,Jquery,Ajax,Query String,Each,我在我的代码中发现了一个奇怪的错误,我找不到哪里出了问题。我使用以下函数在jQuery中循环一个数组: $.each(response, function(index, value) { console.log(value) $.get('/part_report_snippet', { part_request: value, projekt_nummer: $('#project_id').val() }, function(response){ va
$.each(response, function(index, value) {
console.log(value)
$.get('/part_report_snippet', {
part_request: value,
projekt_nummer: $('#project_id').val()
}, function(response){
var $content = $(response);
$grid.append($content).isotope('appended', $content);
});
该数组如下所示:
value = ["CA-S_INT-CM%MITTELKONSOLE", "CA-S_EXT-DM%HECK", "CA-S_INT-CM%BAUTEIL-S", "CA-S_INT-DM%BAUTEIL-M", "CA-S_INT-DM%BAUTEIL-S", "CA-S_INT-DM%EINZELSITZ", "CA-S_INT-DM%HINTERWAGEN", "CA-S_INT-DM%INTERFACEELEMENTE", "CA-S_INT-DM%ITAFEL", "CA-S_INT-DS%TÜR-HINTEN", "CA-S_INT-DS%TÜR-VORNE", "CA-S_ORG%MEETING", "CA-S_ORG%ORGANISATION", "CA-S_ORG%REVIEW"]
错误是:
js:9175 GET 500(内部服务器错误)
最重要的是有:CA-S_INT-CM%**25**MITTELKONSOLE
的一块。25是从哪里来的?我完全不知道
谢谢你的帮助
重要的是:CA-S_INT-CM%25MITTELKONSOLE 25从何而来
这很正常
%25
是URI编码中%
字符的正确编码;GET参数中的字符必须进行编码,因为它们是请求URI的一部分%
在URI编码中是特殊的,因为它引入了一个编码字符(%
的%25
,%20
的空格等)。当服务器对%25
进行URI解码时,它会将其转换回%
。一个500错误意味着服务器代码出错。您需要调试它,而不是JS。%25是输入中“%”字符的url编码。@RoryMcCrossan:不——呃,可能不是。:-)我回答的问题是“25从哪里来?”哦,哇,我从来没有猜到。有没有办法在没有25的情况下发送出去?@mamolx:你是在问你是否可以发送错误的信息。可能吧,但我从来没有理由故意发送错误的URL。再次说明:在GET参数中发送%
字符的正确方法是%25
。最让我惊讶的是,它适用于数组中的所有13个项,而不是“CA-S_INT-CM%MITTELKONSOLE”,它们都有“%”mamolx:正如Rory在对这个问题的评论中所说的,这几乎肯定是服务器代码中的一个问题,不是客户端代码。我会更进一步:这几乎肯定不是%25
。你正在关注这个问题,但这不太可能是问题所在。更有可能发生其他问题。但我要检查的第一件事是服务器代码是否正确地对字符串进行URI解码。在大多数堆栈中,这将是自动的,但我仍然会检查。。。