不能在我的joomla模块中使用ajax

时间:2012-11-15 13:08:48

标签: ajax joomla joomla2.5

我对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查询未启用(即使在同一主机上)。任何解决方法?

1 个答案:

答案 0 :(得分:0)

您正在使用通常限制ajax的defined( '_JEXEC' ) or die( 'Restricted access' );

如果您还没有,则需要使用define('_JEXEC', 1);

请注意,您需要使用 define ,而不是已定义

请确保在ajax脚本之前首先使用此代码。