我一直在这里阅读其他一些问题,但我找不到一个可以完全解释我应该如何解决它的问题。我是 JSON 新手,并不完全理解它。
我必须从两列(regular_price 和 sale_price)搜索价格范围(min_price 和 max_price),但无法从两列中获取值。
<script>
$( function() {
$( "#slider-range" ).slider({
range: true,
min: {{ $min_price }},
max: {{ $max_price }},
values: [ 0, {{ $max_price }} ],
slide: function( event, ui ) {
var amount = $( "#amount" ).val( " $ " + ui.values[ 0 ] + " - $ " + ui.values[ 1 ] );
$.ajax({
type: 'get',
dataType: 'json',
url: '{{ route('priceFilter') }}',
data: 'amount',
success: function (response) {
var data = JSON.parse(response);
$.each(data, function (index, element) {
console.log(element);
});
}
});
}
});
$( "#amount" ).val( " $ " + $( "#slider-range" ).slider( "values", 0 ) + " - $ " + $( "#slider-range" ).slider( "values", 1 ) );
});
</script>
我单击范围,出现以下错误:
未捕获的语法错误:JSON.parse:JSON 数据第 1 行第 1 列的数据意外结束
这是:
我的足迹:
1.00
就变成了字符串 '1.00'
。''
替换变量的任何空值,以便针对 ''
的检查起作用。在您的例子中,您使用了字符串值而不是整数作为金额。也许,您的代码中还有其他值会导致此类错误。这不仅是数据类型错误,而且是格式错误。例如,min_price 和 max_price 在前端可能是小数,但在后端是整数?
存在大量此类数据类型错误 语法错误:JSON.parse:解析错误。该链接是您的错误的官方帮助,显示在浏览器的调试器中(
Ctrl+Shift+C
或F12
--> 调试器):
查看整个指南。
除此之外,没有解决错误,这是我在评论和另一个答案中读到的另一件小事。没有测试过,我对此一无所知。正如对 Uncaught SyntaxError: JSON.parse: Uncaught Character at line 1 column 2 of the JSON data on jQuery 的回答,以及评论中所述:
如果 dataType: "json",则不需要 json.parse。
改变
success: function (response) {
var data = JSON.parse(response);
$.each(data, function (index, element) {
console.log(element);
});
}
到
success: function (response) {
$.each(response, function (index, element) {
console.log(element);
});
}
那是你的台词:
data: 'amount',
您应该将其更改为以下格式:
$.ajax({
url: 'something.php',
data: {amount: amount},
type: 'POST',
success: function (data) {
if (!data.error) {
//your code
}
}
});