[英]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.