我对joomla开发很新,我正在学习如何在我新创建的模块中使用AJAX功能。
基本上,在我的tmpl / default.php中,我有:
<script>
function runButton() {
alert("clicked");
var url='http://127.0.0.1:4444/getData';
var request = new Request({
url: url,
method:'get',
onSuccess: function(responseText){
document.getElementById('fields-container').innerHTML= responseText;
}
}).send();
</script>
<?php
defined('_JEXEC') or die('Restricted access');
?>
<input type="button" value="Click Here for Ajax Call" onClick="runButton()",1000);"/>
<div id="fields-container">
</div>
当我点击按钮时,会调用“run”方法,但我在Chrome调试器中出现以下错误:
OPTIONS http://127.0.0.1:4444/getData Resource failed to load
侦听端口4444的进程是一个代理,它将在我的模块中启用跨域ajax调用。如果我指定'http:// localhost:4444 / getData'
,我会遇到同样的问题有什么想法吗?
更新
这似乎与事实交叉端口http查询未启用(即使在同一主机上)。任何解决方法?
答案 0 :(得分:0)
您正在使用通常限制ajax的defined( '_JEXEC' ) or die( 'Restricted access' );
。
如果您还没有,则需要使用define('_JEXEC', 1);
请注意,您需要使用 define ,而不是已定义
请确保在ajax脚本之前首先使用此代码。