Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 错误TS2345:类型为';{headers:HttpHeaders;}';不可分配给类型为';请求选项args';_Angular_Typescript_Ionic4 - Fatal编程技术网

Angular 错误TS2345:类型为';{headers:HttpHeaders;}';不可分配给类型为';请求选项args';

Angular 错误TS2345:类型为';{headers:HttpHeaders;}';不可分配给类型为';请求选项args';,angular,typescript,ionic4,Angular,Typescript,Ionic4,这是我运行ionic-service时得到的结果。 我使用的是ionic4版本和Angular 8 src/app/home/home.page.ts:60:77-错误TS2345:类型为“”的参数{ headers:HttpHeaders;}不可分配给类型为的参数 “请求选项参数”。[ng]属性“头”的类型为 不相容的[ng]类型“HttpHeaders”缺少以下内容 类型“Headers”的属性:forEach、值、toJSON、条目、, 可能是标准化名称[ng]60 this.http.p

这是我运行
ionic-service
时得到的结果。 我使用的是ionic4版本和Angular 8

src/app/home/home.page.ts:60:77-错误TS2345:类型为“”的参数{ headers:HttpHeaders;}不可分配给类型为的参数 “请求选项参数”。[ng]属性“头”的类型为 不相容的[ng]类型“HttpHeaders”缺少以下内容 类型“Headers”的属性:forEach、值、toJSON、条目、, 可能是标准化名称[ng]60 this.http.post(“, postData,选项)[ng]

package.json

{
  "name": "registration",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "~8.1.2",
    "@angular/core": "~8.1.2",
    "@angular/forms": "~8.1.2",
    "@angular/http": "^7.2.16",
    "@angular/platform-browser": "~8.1.2",
    "@angular/platform-browser-dynamic": "~8.1.2",
    "@angular/router": "~8.1.2",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic/angular": "^4.7.1",
    "core-js": "^2.5.4",
    "rxjs": "~6.5.1",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/architect": "~0.801.2",
    "@angular-devkit/build-angular": "~0.801.2",
    "@angular-devkit/core": "~8.1.2",
    "@angular-devkit/schematics": "~8.1.2",
    "@angular/cli": "~8.1.2",
    "@angular/compiler": "~8.1.2",
    "@angular/compiler-cli": "~8.1.2",
    "@angular/language-service": "~8.1.2",
    "@ionic/angular-toolkit": "^2.1.1",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^8.9.5",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.4.3"
  },
  "description": "An Ionic project"
}

您应该执行以下操作:
从'@angular/Http'导入{Http,Headers,RequestOptions}

来自http的DI注入是正常的。然后只需按如下方式使用
RequestOptions

sendPostRequest() {
    let headers = new Headers({'Content-Type': 'application/json'});
    // headers.append('Content-Type', 'text/plain');
    // I didn't understand if you need this append.

    let options = new RequestOptions({ headers: headers });

    const postData = {
        "username": "Customer004",
        "email": "customer004@email.com",
        "password": "0000252525",
        "gender": "male",
    }

    this.http.post("http://localhost/android/Api.php?apicall=signup", postData, options)
        .subscribe(data => {
            console.log(data);
        });
}

您应该执行以下操作:
从'@angular/Http'导入{Http,Headers,RequestOptions}

来自http的DI注入是正常的。然后只需按如下方式使用
RequestOptions

sendPostRequest() {
    let headers = new Headers({'Content-Type': 'application/json'});
    // headers.append('Content-Type', 'text/plain');
    // I didn't understand if you need this append.

    let options = new RequestOptions({ headers: headers });

    const postData = {
        "username": "Customer004",
        "email": "customer004@email.com",
        "password": "0000252525",
        "gender": "male",
    }

    this.http.post("http://localhost/android/Api.php?apicall=signup", postData, options)
        .subscribe(data => {
            console.log(data);
        });
}

你是从
@angular/http
导入
头文件吗?@Jacopo Sciampi我是从'@angular/common/http'导入{HttpHeaders};您可以添加您的
package.json
文件吗?也请使用“@angular/Http”中的
import{Http,Headers,RequestOptions}我相信这会起作用。src/app/home/home.page.ts:57:77中的错误-错误TS2345:类型为“{headers:HttpHeaders;}”的参数不能分配给类型为“RequestOptionsArgs”的参数。[ng]属性“头”的类型不兼容。[ng]类型“HttpHeaders”缺少类型“Headers”中的以下属性:forEach、value、toJSON、entries、mayBeSetNormalizedName[ng]57 this.http.post(“”、postData、options)您是否从
@angular/http
导入
头文件?@Jacopo Sciampi正在像这样从“@angular/common/http”导入{HttpHeaders}”;您可以添加您的
package.json
文件吗?也请使用“@angular/Http”中的
import{Http,Headers,RequestOptions}我相信这会起作用。src/app/home/home.page.ts:57:77中的错误-错误TS2345:类型为“{headers:HttpHeaders;}”的参数不能分配给类型为“RequestOptionsArgs”的参数。[ng]属性“头”的类型不兼容。[ng]类型“HttpHeaders”缺少类型“Headers”中的以下属性:forEach、值、toJSON、条目、mayBeSetNormalizedName[ng]57 this.http.post(“、postData、选项)谢谢Jacopo Sciampi。但当我尝试回答您的问题时,我仍然有问题。从源站“”访问“”处的XMLHttpRequest已被CORS策略阻止:飞行前响应中的访问控制允许标头不允许请求标头字段内容类型。zone evergreen.js:2952 POST net::ERR_FAILEDCORS是后端错误。我真的不能帮你,因为我不是一个开发者。但是,如果您能告诉我BE中使用的是哪种语言,我可以给您一些链接来帮助您解决这个问题。谢谢Jacopo Sciampi。但是,当我尝试您的答案时,我仍然遇到了一个问题:从源代码“”访问XMLHttpRequest已被CORS策略阻止:访问控制允许标头不允许请求标头字段内容类型在飞行前的反应。zone evergreen.js:2952 POST net::ERR_FAILEDCORS是后端错误。我真的不能帮你,因为我不是一个开发者。但是如果你能告诉我BE中使用的是哪种语言,我可以给你一些链接,帮助你解决这个问题。