I am new to AngularJS, I am from SAP background and as part of my PoC I built my REST services using SAP NW Gateway,I am facing an issue to POST data from Angularjs to my REST services.Please find the below detailed error log
***1. Remote Address:
10.xxx.xx.xx:8000
2. Request URL:
//host:port/sap/opu/odata/sap/USERS/Users
3. Request Method:
POST
4. Status Code:
400 Bad Request
5. Request Headersview source
1. Accept:
application/json, text/plain, */*
2. Accept-Encoding:
gzip,deflate
3. Accept-Language:
en,te;q=0.8
4. Authorization:
Basic a2VsYW1yOmoyZDEwMA==
5. Connection:
keep-alive
6. Content-Length:
146
7. Content-Type:
application/json;charset=UTF-8
8. Cookie:
sap-usercontext=sap-client=100; SAP_SESSIONID_J2D_100=R_60WyUyNG2nV1MbhC9QAcKPzyBwwxHkmwsAUFaDBqQ%3d
9. Host:
abcdefgh:8000
10. Origin:
file://
11. User-Agent:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
12. X-CSRF-Token:
_jXDnt2Cdpplpj5zvK3iPA==
6. Request Payloadview source
{UserID:555, FirstName:rajesh555, LastName:kelam555, Email:[email protected], Phone:9876554433,…}
1. Country: "UK"
2. Email: "[email protected]"
3. FirstName: "rajesh555"
4. LastName: "kelam555"
5. Phone: 9876554433
6. Postcode: "TW18 4BL"
7. UserID: 555
7. Response Headersview source
1. content-length:
535
2. content-type:
application/json
3. dataserviceversion:
1.0****
Angular Code for Post :
$scope.addRow = function() {
var config = {};
var pushdata = {'UserID':$scope.UserID, 'FirstName':$scope.FirstName, 'LastName':$scope.LastName, 'Email':$scope.Email, 'Phone':$scope.Phone, 'Country':$scope.Country, 'Postcode':$scope.Postcode};
// Sending Notification to User
growl.addSuccessMessage("User Created", config);
/* $http.post(url,pushdata, {'Content-Type':'application/json'}).success(function(pushdata) {
$scope.resultSet = pushdata.d.results;
alret("Data Posted");
}) */
$http.post(url,pushdata, {headers:{'Content-Type':'application/json'}}).success(function(data){alert(data);});
$scope.resultSet.push(pushdata);
$scope.createMessage();
$scope.UserID='';
$scope.FirstName='';
$scope.LastName='';
$scope.Email='';
$scope.Phone='';
$scope.Country='';
};
it would be great if some one help me to sort.
*Note: I am a kid in AngularJS...please ignore me and feel free to thought me.
I request to suggest the best URl/Site to learn Angularjs in a better and consistent way.
I thought, if I share the format(XML/JSON) of payload expecting for the POST to perform by my SAP Gateway service which will helps me to quickly resolve this.Below are the formats of XML/JSON works for POST.
XML Формат:
хост: порт/сок/ОП/OData/заболонный/USERS/Users ('123') Пользователей ('123') 2014-11-21T15: 21: 52Z RAJESH Kelam [email protected] Великобритания RG4 6SA
JSON Формат:
{ д: { __metadata: { id: "host: port/sap/opu/odata/sap/USERS/Users ('123')" uri: "host: port/sap/opu/odata/sap/USERS/Users ('123')" типа: "USERS.User" } - Идентификатор_пользователя: "123" FirstName: "RAJESH" LastName: "Kelam" Электронная почта: "[email protected]" Телефон: "123456789" Страна: "Великобритания" Почтовый индекс: "RG4 6SA" } - }
Вам не нужно добавлять заголовок типа контента, угловой сортирует его для вас. В методе post не так уж много ошибок, возможно, это ваши услуги, на которые вы хотите посмотреть. – BenCr
Привет, Бен, я пробовал то же самое, что вы посоветовали ранее на этот пост, но не повезло. И я могу подтвердить, что моя служба работает абсолютно нормально со всеми CRUDQ-операциями как с клиентом SAP Gateway, так и с клиентом Chrome REST. Но я сомневаюсь в том, формат, который он пытается опубликовать, не соответствует .... Я видел, что ошибка является ошибкой форматирования XML. –
По умолчанию Angularjs отправит его JSON, а не XML. Ожидает ли ваше обслуживание XML? Я не знаю, как сделать угловой отправку XML или даже если это возможно. – BenCr