Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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中,通过ajax作为数组而不是responseText接收php数据_Javascript_Php_Arrays_Ajax - Fatal编程技术网

在我的javascript中,通过ajax作为数组而不是responseText接收php数据

在我的javascript中,通过ajax作为数组而不是responseText接收php数据,javascript,php,arrays,ajax,Javascript,Php,Arrays,Ajax,目前,我有一个ajax设置,使用javascript的页面调用一个php文件,然后通过xhttp.responseText返回数据。这对于字符串非常有效,但当我向它传递一个json编码的数组时,它仍然将结果视为文本。我得到一个字符串格式的数组,看起来像这样[1,2,3,4,5,6,7] 哪种方法可行,但不方便,因为它是表示数组的文本,而不是实际数组 如何将数据接收为数组而不是文本格式的数组?目前,我仍然可以使用split()获取数据,但这似乎有些草率。xhttp.responseText是否有更

目前,我有一个ajax设置,使用javascript的页面调用一个php文件,然后通过xhttp.responseText返回数据。这对于字符串非常有效,但当我向它传递一个json编码的数组时,它仍然将结果视为文本。我得到一个字符串格式的数组,看起来像这样
[1,2,3,4,5,6,7]

哪种方法可行,但不方便,因为它是表示数组的文本,而不是实际数组


如何将数据接收为数组而不是文本格式的数组?目前,我仍然可以使用split()获取数据,但这似乎有些草率。xhttp.responseText是否有更好的替代方案?

您可以尝试将数据作为JSON发送,这将为您提供所需数据结构的所有灵活性。PHP有一个函数json_encode,它将把PHP变量转换成json,您可以在客户端接收到它

  • 首先,确保您的PHP按照我所说的对JSON进行编码,并且您也设置了正确的头,即。 标题('Content-Type:application/json')

  • 接下来,在AJAX代码中,执行JSON.parse(xhttp.responseText)以将JSON数据作为JavaScript对象检索

  • 然后你可以用这个物体做任何你想做的事。此外,您还可以检查PHP是否通过xhttp.getResponseHeader(“内容类型”)发送JSON,如果您发送JSON对象,它应该返回“application/JSON”


  • 您可以尝试将数据作为JSON发送,这将为您提供所需数据结构的所有灵活性。PHP有一个函数json_encode,它将把PHP变量转换成json,您可以在客户端接收到它

  • 首先,确保您的PHP按照我所说的对JSON进行编码,并且您也设置了正确的头,即。 标题('Content-Type:application/json')

  • 接下来,在AJAX代码中,执行JSON.parse(xhttp.responseText)以将JSON数据作为JavaScript对象检索

  • 然后你可以用这个物体做任何你想做的事。此外,您还可以检查PHP是否通过xhttp.getResponseHeader(“内容类型”)发送JSON,如果您发送JSON对象,它应该返回“application/JSON”


  • 您需要设置标题,smth如下所示

    $data = array('1', '2', '3');
    header('Content-Type: application/json');
    echo json_encode($data);
    

    您需要设置标题,smth如下所示

    $data = array('1', '2', '3');
    header('Content-Type: application/json');
    echo json_encode($data);
    

    我如何在客户端接收它?我目前正在使用echo发送json编码的数组,如so echo json_encode($send_array);1.首先,确保您的PHP按照我所说的对JSON进行编码,并且您也设置了正确的头,即头('Content-Type:application/JSON');2.接下来,在AJAX代码中,执行JSON.parse(xhttp.responseText)以将JSON数据作为JavaScript对象检索。3.然后你可以用这个物体做任何你想做的事。此外,您还可以检查PHP是否通过xhttp.getResponseHeader(“内容类型”)发送JSON,如果您发送的是JSON对象,它应该返回“application/JSON”。@Terminus,我已将注释移到原始答案中。@rby Ok,我已经这样做了,但JSON.parse无法将其识别为有效的JSON对象。当我尝试在responseText上运行它时,它会抛出一个语法错误,但是如果我执行诸如JSON.parse(“[1,5,“false”]”)之类的测试,它就可以正常工作;我唯一能想到的就是我的头球,因为这是我怀疑我可能没有正确使用的主要部分。我是否只是将其放在php文件的顶部,即“doing echo json_encode($send_array);”@user3225440,我怀疑问题出在PHP方面。确保您没有回显或打印除发送回的数据以外的任何其他内容,这些数据应为echo json_encode(此处为您的数据);如果您的PHP中有其他打印和回音,那么所有这些都会被发回,这将产生一个问题。我如何在客户端接收它?我目前正在使用echo发送json编码的数组,如so echo json_encode($send_array);1.首先,确保您的PHP按照我所说的对JSON进行编码,并且您也设置了正确的头,即头('Content-Type:application/JSON');2.接下来,在AJAX代码中,执行JSON.parse(xhttp.responseText)以将JSON数据作为JavaScript对象检索。3.然后你可以用这个物体做任何你想做的事。此外,您还可以检查PHP是否通过xhttp.getResponseHeader(“内容类型”)发送JSON,如果您发送的是JSON对象,它应该返回“application/JSON”。@Terminus,我已将注释移到原始答案中。@rby Ok,我已经这样做了,但JSON.parse无法将其识别为有效的JSON对象。当我尝试在responseText上运行它时,它会抛出一个语法错误,但是如果我执行诸如JSON.parse(“[1,5,“false”]”)之类的测试,它就可以正常工作;我唯一能想到的就是我的头球,因为这是我怀疑我可能没有正确使用的主要部分。我是否只是将其放在php文件的顶部,即“doing echo json_encode($send_array);”@user3225440,我怀疑问题出在PHP方面。确保您没有回显或打印除发送回的数据以外的任何其他内容,这些数据应为echo json_encode(此处为您的数据);如果您的PHP中有其他打印和回音,那么所有这些也会被发回,这将产生问题。