【问题标题】:Joomla 2.5 angular ajax post doesn't workingJoomla 2.5 角度 ajax 帖子不起作用
【发布时间】:2014-04-09 17:13:06
【问题描述】:

我正在制作一个 joomla 2.5 组件,但我遇到了角度发布请求的问题。

这是我的 Javascript(角度框架):

var itemToSend = "ok";

$http.post('http://mediastore.dev/index.php?option=com_mediastore&task=sendMail&format=raw', itemToSend)
     .success(function(data) {
         console.log("my->"+data);
     })
     .error(function() {
         console.log('shit happens');
     });

还有我的控制器:

public function sendMail() {
    if(isset($_POST)) {
        $res = $_POST['itemToSend'];
        echo $res;
    }else {
        echo 'nothing';
    }
}

然后回调返回 my->
通知:未定义索引:itemToSend

为什么是未定义的索引?怎么了?

非常感谢,

安东尼


我以前试过这个,但这是同样的问题..

我已将我的 php 更改为:

public function sendMail() {
     if(isset($_POST['itemToSend'])) {
         $res = $_POST['itemToSend'];
         echo $res;
     }else {
         echo 'nothing';
     }
}

还有我的js:

var itemToSend = {
    itemToSend: "ok"
};

$http.post('http://mediastore.dev/index.php?option=com_mediastore&task=sendMail&format=raw', itemToSend)
    .success(function(data) {
         console.log("my->"+data);
    })

而且它总是返回“无”

【问题讨论】:

  • 一个你应该检查isset($_POST['itemToSend']) 因为$_POST 总是设置,其次你没有定义一个名为 itemToSend 的 post 变量
  • 不要在 Joomla 中使用 $_POST。查看有关如何使用 JInput 检索输入的文档:docs.joomla.org/Retrieving_request_data_using_JInput

标签: javascript php ajax joomla


【解决方案1】:

Angular 不通过 FormData 发送数据,而是通过有效负载发送数据。

通过 PHP,你不能使用 $_POST 或 Joomla 的 post 输入法来检索这些数据,你必须这样做:

$post = json_decode(file_get_contents("php://input"));

... 并将 $post 变量视为对象。

【讨论】:

    【解决方案2】:

    我不明白为什么,但是.. 似乎是有角度的 $http 请求。

    角度版本不起作用:

    $http.post('index.php?option=com_mediastore&task=sendMail&format=raw', itemToSend)
         .success(function(data) {
             console.log("my->"+data);
         })
    

    但是 jquery 版本可以工作:

    jQuery.ajax({
        type: "POST",
        url: "index.php?option=com_mediastore&task=sendMail&format=raw",
        data: itemToSend,
        success: function(data){
            console.log(data);
    
        }
    });
    

    我很想知道为什么?

    【讨论】:

      猜你喜欢
      • 2014-07-10
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多