gpt4 book ai didi

javascript - PHP 在 $.ajax 响应中回显清空字符串

转载 作者:行者123 更新时间:2023-11-30 17:13:01 25 4
gpt4 key购买 nike

我正在尝试从 AJAX 调用中取回数据。我用一个字符串进行了测试,但它返回的是空的。我只想在响应时打印字符串以控制台。

JS:

makeRequest: function(sService, oData){
var request = $.post(
'../../Utils/utils/php/userQuery.php'
,{'sService' : sService, 'oData': oData}
,'json'
);
request.done(function(oResult){
// This is firing off, but is printing empty string
console.log(JSON.stringify(oResult));
var fail = errorHandler.check(oResult);
if(!fail){
// This is firing off, but is printing empty string
console.log(oResult);
} else{
console.log(fail);
}
});
request.fail(function(oResult){
console.log("There was an error in retrieving service data");
});
}

PHP:

class request{
private $sService;
function _construct($sService){
$_SESSION['user_Id'] = 100000;
$this->$sService = $sService;
switch($this->$sService){
case 'follower':
break;
case 'followee':
break;
case 'promoter':
break;
case 'promotee':
break;
case 'note':
// This should be hit and return "hit"
echo json_encode("hit");
break;
case 'createFollowee':
break;
case 'createPromotee':
break;
case 'createNote':
break;
default:
echo "ErrorCode: 4000";
break;
}
}
}
$request = new request($_POST['sService']);

如果我尝试 $.parseJSON(oResult) 响应,我会收到解析错误,因为它是空的。我哪里出错了?

回答:

上面更新的代码有效。答案提供了几个问题。

  1. 我没有在 construct() 中添加 2 _。[之前:_construct 之后:__construct]
  2. 我没有将 $this 指向我的类中的全局变量。
  3. 我最初没有初始化我的类。
  4. 我在初始化类时没有将我的变量传递给构造。

我希望这对其他人有帮助。

最佳答案

  1. 使用浏览器的开发工具检查服务器响应。也许响应真的是空的?
  2. 你想获取 JSON 数据,但你没有json_encode你的输出
  3. PHP 构造函数以 2 下划线开头:__construct(不是 _construct)
  4. $sService = $_POST['sService']; 应该是 $this->sService = $_POST['sService'];
  5. 如果您不使用 new request(); 初始化您的类,则不会调用构造函数

关于javascript - PHP 在 $.ajax 响应中回显清空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613270/

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