gpt4 book ai didi

Ajax 无法检索数据 (CAKPHP)

转载 作者:行者123 更新时间:2023-12-01 15:40:43 27 4
gpt4 key购买 nike

这是我的代码:这是一个 javascript 文件,它发送从 View 中获取所选元素并将该 id 作为 Ajax 请求发送到 Controller 。

function getData (id, e) {

if(window.XMLHttpRequest) {

xmlHttp = new XMLHttpRequest();
}
else {

xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}

xmlHttp.onreadystatechange = function () {

if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {

alert('yes');
}else{

alert('no');
}
}

xmlHttp.open('POST', '/BrandDetail/returnPdetails', true);
xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlHttp.send(id);
e.preventDefault();

}
});

现在 Controller 既没有收到请求也没有响应它。

class BrandDetailController extends AppController {

public $name = 'BrandDetail';

function returnPdetails () {

$id = $_POST['id'];
$data = $this->brandDetail->find('all', array('conditions' => array('brandDetail.id' => $id)));
}
}

最佳答案

  1. 您应该从 ajax 提交而不是模型调用 Controller 。使您的路径多元化

    xmlHttp.open('POST', '/BrandDetails/returnPdetails', true);

  2. 发送函数中传递的参数应该是键和值

    xmlHttp.send("id="+id);

  3. 您实际上并未将任何数据或字符串发送到 View 以获取 ajax 响应。在您的 Controller 中,至少在尝试操作您不确定是否将其发送到 Controller 的数据之前向 View 发送一个测试字符串。

    函数 returnPdetails(){

    $id = $this->params['named']['id'];

    $data = $this->BrandDetail->findById($id);

    pr('测试请求是否有效的一些文本');

  4. 根据here,readystatechange 函数不应大写

    xmlhttp.onreadystatechange

  5. 通过捕获 xmlhttp.onreadystatechange 函数中的错误来缩小问题范围。如果 readyState 也为 0、1、2 或 3,则放入语句。这将帮助您调试。

关于Ajax 无法检索数据 (CAKPHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662402/

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