繁体   English   中英

Joomla 2.5角Ajax发布不起作用

[英]Joomla 2.5 angular ajax post doesn't working

我正在制作一个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);
    })

它总是返回“无”

我不明白为什么,但是..看来这是有角度的$ 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);

    }
});

我很想知道为什么?

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

通过PHP,您不能使用$ _POST或Joomla的post输入方法来检索此数据,您必须执行以下操作:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM