Joomla 2.5角度ajax柱不起作用

时间:2014-03-06 20:23:39

标签: javascript php ajax joomla

我正在创建一个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';
    }
}

并且回调返回 我的 - >
注意:未定义索引: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);
    })

它总是返回“没有”

2 个答案:

答案 0 :(得分:1)

我不是为什么但是......似乎是角度$ 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);

    }
});

我很想知道为什么?

答案 1 :(得分:0)

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

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

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

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