Как изменить сообщение ['Content-Type'] в angularjs
Я хочу изменить пост ['Content-Type'] в angularjs, поэтому я использую
app.config(function($locationProvider,$httpProvider) {
$locationProvider.html5Mode(false);
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
});
и событие
$http.post("http://172.22.71.107:8888/ajax/login",{admin_name:user.u_name,admin_password:user.cert})
.success(function(arg_result){
console.log(arg_result);
});
};
однако rusult -
Parametersapplication/x-www-form-urlencoded
{"admin_name":"dd"}
я хочу
Parametersapplication/x-www-form-urlencoded
admin_name dd
так что я должен делать?
Ответы
Ответ 1
Попробуйте:
var serializedData = $.param({admin_name:user.u_name,admin_password:user.cert});
$http({
method: 'POST',
url: 'http://172.22.71.107:8888/ajax/login',
data: serializedData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}}).then(function(result) {
console.log(result);
}, function(error) {
console.log(error);
});
Ответ 2
angular.module('myApp', [])
.config(function ($httpProvider) {
$httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded';
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
})
Ответ 3
OP использует Content-Type : application/x-www-form-urlencoded
, поэтому вам нужно использовать $httpParamSerializerJQLike для изменения данных сообщения из JSON в строку
Примечание: нет свойства данных, но является свойством params
$http({
method: 'POST',
url: 'whatever URL',
params: credentials,
paramSerializer: '$httpParamSerializerJQLike',
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
Кроме того, вы можете вставить сериализатор и явно использовать его с помощью свойства данных
.controller(function($http, $httpParamSerializerJQLike) {
....
$http({
url: myUrl,
method: 'POST',
data: $httpParamSerializerJQLike(myData),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
Ответ 4
Посмотрите на это:
Как отправить данные как данные формы вместо полезной нагрузки запроса?
В качестве альтернативы вы можете сделать следующее:
$http.post('file.php',{
'val': val
}).success(function(data){
console.log(data);
});
PHP
$post = json_decode(file_get_contents('php://input'));
$val = print_r($post->val,true);