Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Javascript 为什么浏览器在json响应中添加额外的向后斜杠,并且json数组长度错误?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么浏览器在json响应中添加额外的向后斜杠,并且json数组长度错误?

Javascript 为什么浏览器在json响应中添加额外的向后斜杠,并且json数组长度错误?,javascript,jquery,Javascript,Jquery,这就是我向服务器发出JSON值回调请求的方式 $(document).on('click', '.currentOrderRow', function(event ) { var orderid = $(this).attr("id_data"); $.ajax({ type: 'GET', url: url+'/OMS/oms1/getOrderdetails?orderid='+orderid, jsonpCallback: 'jsonCal

这就是我向服务器发出JSON值回调请求的方式

$(document).on('click', '.currentOrderRow', function(event ) {
var orderid = $(this).attr("id_data");

$.ajax({
        type: 'GET',
        url: url+'/OMS/oms1/getOrderdetails?orderid='+orderid,
        jsonpCallback: 'jsonCallback',
        cache: true,
        dataType: 'jsonp',
        jsonp: false,
        success: function (response) {
    alert(response.json_value.length);
            console.log('response is'+JSON.stringify(response));

        },
        error: function (e) {
            alert('Into error ');
        }
    });


});
我观察到服务器控制台中显示的JSON响应在()中有斜杠

为什么长度显示为1525


因为上面的JSON包含两个值??(从contact\u phone\u no开始,每个都是新记录)

服务器端有一个bug。它不向您发送JSON对象图(即嵌套的JSON对象),而是向您发送包含JSON格式对象的单个字符串。或者换一种说法:它在JSON中发送JSON

要解析数据,您需要以下代码:

var data = JSON.parse(response.json_value);

或者修复服务器端的错误。

使用
console.log(响应)可以得到什么?反斜杠用于转义JSON中的双引号请参见:“字符串是由零个或多个Unicode字符组成的序列,用双引号包装,使用反斜杠转义”您的响应由一个具有一个属性的对象组成。该属性有一个值:一个字符串(似乎是JSON)。您似乎希望它是一个数组。这与浏览器无关,而是服务器正在发送的内容@Satpal与您的声明我得到长度为2。
var data = JSON.parse(response.json_value);