gpt4 book ai didi

php - 来自 php 函数的 XMLHttpRequest 响应不包含数据

转载 作者:行者123 更新时间:2023-11-28 13:48:50 26 4
gpt4 key购买 nike

我正在使用 codeigniter 应用程序,该应用程序根据模型中函数返回的数据库查询动态生成一些 html 元素。

在我的一个 View 中,我使用 XMLHttpRequest 调用我的 Controller 之一中的 php 函数,该函数反过来以字符串的形式从我的模型中获取数据,并将其回显为响应文本。我的 JavaScript 代码如下所示:

var xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", "/controller/my_function", true);
var postStr = "name="+proposalName+"&data="+data;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(postStr);
var response = xmlHttp.responseText;

被调用的函数如下所示:

public function my_function(){
$data['name'] = $this->input->post('name');
$data['data'] = $this->input->post('data');
$string = $this->my_model->my_model_function($data);
echo $string;
}

模型正确返回字符串,即使只是在函数中回显随机数或字符串后,它仍然没有从响应文本中获取任何内容。无论我尝试在函数中回显什么,响应文本中似乎都没有任何内容。我在这里做错了什么?我怎样才能让responseText从我的php函数中获取正确的值?

编辑:修复了 postStr 变量的复制问题

最佳答案

var post Str = "name="+proposalName+"&data="+data;

这是一个语法错误。当 JavaScript 遇到 Str 时,它就会崩溃。 HTTP 请求永远不会发送。

即使已发送,您也是在发出异步请求(open 的第三个参数是 true),因此它不会锁定整个页面,直到收到回复。您将在响应设置 xmlHttp.responseText 之前读取它。

您需要一个onreadystatechange函数。

请参阅MDN documentation for XMLHttpRequest其中有示例。

关于php - 来自 php 函数的 XMLHttpRequest 响应不包含数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com