jquery 未捕获的语法错误:JSON.parse:JSON数据的第1行第1列出现意外的数据结尾

au9on6nz  于 9个月前  发布在  jQuery
关注(0)|答案(2)|浏览(112)

我一直在阅读这里的其他一些问题,但我找不到一个完全解释我应该如何修复它。
我必须从两列(regular_price &销售_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列出现意外的数据结尾

bjp0bcyl

bjp0bcyl1#

这是:

  • 数据类型问题或
  • 格式错误或
  • 一个变量的null值。

我的曲目:

  • 我的用户没有写权限。
  • 我不得不在SQL后端写一个十进制,但代码在它周围连接了引号,这样1.00就变成了字符串'1.00'
  • 我必须在一个更大的函数的开头用一个空字符串''替换变量的任何空值,以便对''进行检查。

在你的例子中,你使用了一个字符串值而不是一个整数作为金额。也许,在你的代码中有其他的值导致了这样的错误。它不仅是这样的数据类型错误,而且是格式错误。例如,min_price和max_price可能在前端是十进制的,但在后端是整数?
SyntaxError: JSON.parse: bad parsing中有很多这样的数据类型错误。该链接是错误的官方帮助,显示在浏览器的调试器中(Ctrl+Shift+CF12-->调试器):
x1c 0d1x的数据



检查整个指南。
在此之上,不解决错误,这里是另一个小事情,我读的评论和另一个答案.没有测试过它,我不知道它的任何东西.作为在回答Uncaught SyntaxError: JSON.parse: unexpected 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);
                        });
                    }

vmpqdwk3

vmpqdwk32#

那是你的台词

data: 'amount',

字符串
您可以将其更改为以下格式:

$.ajax({
         url: 'something.php',
         data: {amount: amount},
                type: 'POST',
                success: function (data) {
                    if (!data.error) {
                       //your code
                    }
                }
            });

相关问题