Angular 爱奥尼亚3角5后数据HttpClient
我试图在本地Web服务中发布数据,但在企业中却做不到:p 无论如何,这就是我试图编写的代码: 在提供程序中(src/providers/team data/team data.ts) 在addteam.html中Angular 爱奥尼亚3角5后数据HttpClient,angular,web-services,post,ionic-framework,httpclient,Angular,Web Services,Post,Ionic Framework,Httpclient,我试图在本地Web服务中发布数据,但在企业中却做不到:p 无论如何,这就是我试图编写的代码: 在提供程序中(src/providers/team data/team data.ts) 在addteam.html中 <!-- Generated template for the AddteamPage page. See http://ionicframework.com/docs/components/#navigation for more info on Ionic pa
<!--
Generated template for the AddteamPage page.
See http://ionicframework.com/docs/components/#navigation for more info on
Ionic pages and navigation.
-->
<ion-header>
<ion-navbar>
<button ion-button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>addteam</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<h2>Add User</h2>
<form (ngSubmit)="saveTeam()">
<ion-item>
<ion-label>TeamName</ion-label>
<ion-input type="text" [(ngModel)]="teams.name" name="name"></ion-input>
</ion-item>
<ion-item>
<ion-label>TeamMember</ion-label>
<ion-input type="text" [(ngModel)]="teams.member" name="member"></ion-input>
</ion-item>
<button ion-button type="submit" block>Add Team</button>
</form>
</ion-content>
addteam
添加用户
团队名称
组员
添加团队
当我启动应用程序并填写字段后,我按下按钮在我的数据库中添加字段,在控制台中出现此错误:
HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost/MyWebService/api/createteam.php", ok: false, …}
error
:
error
:
SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttpRequest.onLoad (http://localhost:8100/build/vendor.js:73072:51) at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660) at Object.onInvokeTask (http://localhost:8100/build/vendor.js:5114:33) at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581) at r.runTask (http://localhost:8100/build/polyfills.js:3:10834) at e.invokeTask [as invoke] (http://localhost:8100/build/polyfills.js:3:16794) at p (http://localhost:8100/build/polyfills.js:2:27648) at XMLHttpRequest.v (http://localhost:8100/build/polyfills.js:2:27893)
message
:
"Unexpected token < in JSON at position 0"
stack
:
"SyntaxError: Unexpected token < in JSON at position 0↵ at JSON.parse (<anonymous>)↵ at XMLHttpRequest.onLoad (http://localhost:8100/build/vendor.js:73072:51)↵ at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660)↵ at Object.onInvokeTask (http://localhost:8100/build/vendor.js:5114:33)↵ at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581)↵ at r.runTask (http://localhost:8100/build/polyfills.js:3:10834)↵ at e.invokeTask [as invoke] (http://localhost:8100/build/polyfills.js:3:16794)↵ at p (http://localhost:8100/build/polyfills.js:2:27648)↵ at XMLHttpRequest.v (http://localhost:8100/build/polyfills.js:2:27893)"
__proto__
:
Error
text
:
"<br />↵<b>Notice</b>: Undefined index: name in <b>/Applications/XAMPP/xamppfiles/htdocs/MyWebService/api/createteam.php</b> on line <b>15</b><br />↵<br />↵<b>Notice</b>: Undefined index: member in <b>/Applications/XAMPP/xamppfiles/htdocs/MyWebService/api/createteam.php</b> on line <b>16</b><br />↵{"error":true,"message":"Could not add team"}"
__proto__
:
Object
headers
:
HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message
:
"Http failure during parsing for http://localhost/MyWebService/api/createteam.php"
name
:
"HttpErrorResponse"
ok
:
false
status
:
200
statusText
:
"OK"
url
:
"http://localhost/MyWebService/api/createteam.php"
__proto__
:
HttpResponseBase
HttpErrorResponse{headers:HttpHeaders,状态:200,状态文本:“OK”,url:http://localhost/MyWebService/api/createteam.php“,ok:false,…}
错误
:
错误
:
SyntaxError:XMLHttpRequest.onLoad的JSON.parse()位置0处JSON中的意外标记<(http://localhost:8100/build/vendor.js:73072:51)在t.invokeTask(http://localhost:8100/build/polyfills.js:3:15660)在Object.onInvokeTask(http://localhost:8100/build/vendor.js:5114:33)在t.invokeTask(http://localhost:8100/build/polyfills.js:3:15581)在r.runTask(http://localhost:8100/build/polyfills.js:3:10834)在e.invokeTask[作为invoke](http://localhost:8100/build/polyfills.js:3:16794)在p(http://localhost:8100/build/polyfills.js:2:27648)在XMLHttpRequest.v(http://localhost:8100/build/polyfills.js:2:27893)
消息
:
“JSON中位置0处出现意外标记<”
堆栈
:
“SyntaxError:JSON中位置0处的意外标记<”↵ 在JSON.parse()处↵ 在XMLHttpRequest.onLoad时(http://localhost:8100/build/vendor.js:73072:51)↵ 在t.invokeTask(http://localhost:8100/build/polyfills.js:3:15660)↵ 在Object.onInvokeTask(http://localhost:8100/build/vendor.js:5114:33)↵ 在t.invokeTask(http://localhost:8100/build/polyfills.js:3:15581)↵ 在r.runTask(http://localhost:8100/build/polyfills.js:3:10834)↵ 在e.invokeTask[作为invoke](http://localhost:8100/build/polyfills.js:3:16794)↵ 在p(http://localhost:8100/build/polyfills.js:2:27648)↵ 在XMLHttpRequest.v(http://localhost:8100/build/polyfills.js:2:27893)"
__原型__
:
错误
文本
:
“
↵注意:第15行/Applications/XAMPP/xamppfiles/htdocs/MyWebService/api/createteam.php中未定义的索引:name
↵
↵注意:未定义索引:第16行/Applications/XAMPP/xamppfiles/htdocs/MyWebService/api/createteam.php中的成员
↵{“error”:true,“message”:“无法添加团队”}
__原型__
:
对象
标题
:
HttpHeaders{normalizedNames:Map(0),lazyUpdate:null,lazyInit:ƒ}
消息
:
“在分析的过程中Http失败http://localhost/MyWebService/api/createteam.php"
名称
:
“HttpErrorResponse”
好啊
:
假的
地位
:
200
状态文本
:
“好的”
网址
:
"http://localhost/MyWebService/api/createteam.php"
__原型__
:
HttpResponseBase
当我试图向邮递员提出邮寄要求时,
插入正确的url作为POST,
并在body->form data中插入,
键:name和member,填写并发送请求后,在body->Pretty中出现消息“{”error:false,“message”:“Team added successfully”}”,字段实际上添加到数据库中
我做错了什么?我该怎么做才能让它工作?
谢谢。几天前我也在为类似的问题苦苦挣扎。最后,我为FormData转换了数据对象。保存FormData而不是json解决了我的问题
addTeam(data) {
return new Promise((resolve, reject) => {
this.http.post(this.apiUrlAdd, this.getFormData(data))
.subscribe(res => {
resolve(res);
}, (err) => {
reject(err);
});
});
}
getFormData(object) {
const formData = new FormData();
Object.keys(object).forEach(key => formData.append(key, object[key]));
return formData;
}
为什么要使用承诺?只是好奇。我在其他地方也看到了它。Promise是现在JavaScript中异步处理的标准。您可以使用“解析”和“拒绝”来标识流程输出。重要的一点是,你可以抓住那些承诺。明白了,谢谢。我们以前使用map,然后在以后订阅它。
HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost/MyWebService/api/createteam.php", ok: false, …}
error
:
error
:
SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttpRequest.onLoad (http://localhost:8100/build/vendor.js:73072:51) at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660) at Object.onInvokeTask (http://localhost:8100/build/vendor.js:5114:33) at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581) at r.runTask (http://localhost:8100/build/polyfills.js:3:10834) at e.invokeTask [as invoke] (http://localhost:8100/build/polyfills.js:3:16794) at p (http://localhost:8100/build/polyfills.js:2:27648) at XMLHttpRequest.v (http://localhost:8100/build/polyfills.js:2:27893)
message
:
"Unexpected token < in JSON at position 0"
stack
:
"SyntaxError: Unexpected token < in JSON at position 0↵ at JSON.parse (<anonymous>)↵ at XMLHttpRequest.onLoad (http://localhost:8100/build/vendor.js:73072:51)↵ at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15660)↵ at Object.onInvokeTask (http://localhost:8100/build/vendor.js:5114:33)↵ at t.invokeTask (http://localhost:8100/build/polyfills.js:3:15581)↵ at r.runTask (http://localhost:8100/build/polyfills.js:3:10834)↵ at e.invokeTask [as invoke] (http://localhost:8100/build/polyfills.js:3:16794)↵ at p (http://localhost:8100/build/polyfills.js:2:27648)↵ at XMLHttpRequest.v (http://localhost:8100/build/polyfills.js:2:27893)"
__proto__
:
Error
text
:
"<br />↵<b>Notice</b>: Undefined index: name in <b>/Applications/XAMPP/xamppfiles/htdocs/MyWebService/api/createteam.php</b> on line <b>15</b><br />↵<br />↵<b>Notice</b>: Undefined index: member in <b>/Applications/XAMPP/xamppfiles/htdocs/MyWebService/api/createteam.php</b> on line <b>16</b><br />↵{"error":true,"message":"Could not add team"}"
__proto__
:
Object
headers
:
HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message
:
"Http failure during parsing for http://localhost/MyWebService/api/createteam.php"
name
:
"HttpErrorResponse"
ok
:
false
status
:
200
statusText
:
"OK"
url
:
"http://localhost/MyWebService/api/createteam.php"
__proto__
:
HttpResponseBase
addTeam(data) {
return new Promise((resolve, reject) => {
this.http.post(this.apiUrlAdd, this.getFormData(data))
.subscribe(res => {
resolve(res);
}, (err) => {
reject(err);
});
});
}
getFormData(object) {
const formData = new FormData();
Object.keys(object).forEach(key => formData.append(key, object[key]));
return formData;
}