在我的controller.js中我喜欢这个
$http({
url: 'http://example.com/api.php',
method: "POST",
data: { 'YTParam' : 'test' }
})
.then(function(response) {
console.log(response.data);
},
function(response) { // optional
// failed
}
);
我甚至检查了网络工具,param确实通过了。
在我的api.php中我尝试echo $_POST["YTParam"]
但是在我的控制台中我什么都没看到?这有什么不对?我试图回应“字符串”,它确实出现了..
答案 0 :(得分:1)
Angular没有设置服务器处理的标头,请尝试使用:
$_POST = json_decode(file_get_contents("php://input"), true);
答案 1 :(得分:0)
您的数据不在$_POST
数组中,因为默认情况下您的angular JS contentType设置为application/json
,而PHP请求application/x-www-form-urlencoded
。 Quoting from docs:
$ httpProvider.defaults.headers.post :( POST请求的标头默认值)
Content-Type:application / json
要更改此设置,请在配置中更改此值:
yourApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
}]);
或者在您发送请求时:
$http({
url: 'http://myURL.com/api/',
method: "POST",
headers: {
'Content-Type': "application/x-www-form-urlencoded"
},
data: { 'YTParam' : 'test' }
})
您可以将contentType
直接设为属性,但我不能100%确定。