Javascript AJAX/json返回空的opencart
嗨,我正在尝试一个简单的Javascript AJAX/json返回空的opencart,javascript,php,ajax,json,opencart,Javascript,Php,Ajax,Json,Opencart,嗨,我正在尝试一个简单的ajax请求,但我一直得到json的空值 这是我的javascript <script> $(document).ready( function() { $('#donate-box-submit').on('click', function() { var donate_code = $('#charity-campaign-code').val(); var donate_amount = $('#charity-campaign-am
ajax
请求,但我一直得到json
的空值
这是我的javascript
<script>
$(document).ready( function() {
$('#donate-box-submit').on('click', function() {
var donate_code = $('#charity-campaign-code').val();
var donate_amount = $('#charity-campaign-amount').val();
$.ajax({
url: 'index.php?route=donate/donatenow',
type: 'post',
data: {
donate_code: donate_code,
donate_amount: donate_amount
},
dataType: 'json',
beforeSend: function() {
},
complete: function() {
},
success: function(json) {
console.log(json);
alert(json['test']);
},
error: function() {
}
});
});
});
</script>
我还尝试了
echo-json\u-encode($json)
只是为了排除OpenCart函数的任何问题,但同样的问题仍然存在。问题在于调用该方法的路径。不确定您使用什么类作为控制器,但路由应该有三个部分:route=aaa/bbb/donatenow
在哪里aaa/donatenow
console.log(json)
缺少一个代码>在行的末尾:console.log(json)代码>。在控制台中检查请求,您是否能够看到来自PHP控制器的响应?您声明了$json两次。移除第一个。关闭第二个数组中array
后的空格。可能是$this->response->setOutput()失败,但是如果echo json_encode($json);也没有显示响应,则很可能没有调用donatenow()。@逻辑单元-没有调用它是正确的-请参阅下面我的答案中的原因-现在已修复,谢谢!你是对的,这个函数没有被调用,如果逻辑单元想回答的话,请放心,只是因为我在看到下面的答案之前根据他们所说的进行了修复
public function donatenow() {
$json = array(
'test' => 'Output this text'
);
$this->response->setOutput(json_encode($json));
}