简体   繁体   English

Web API 2上的Angular 2 HTTP发布-错误的请求

[英]Angular 2 HTTP Post on Web API 2 - Bad Request

I am trying to call web api authentication using angular 2 as below. 我正在尝试使用angular 2调用Web api身份验证,如下所示。 But I am getting error 但是我得到了错误

"Failed to load resource: the server responded with a status of 400 (Bad Request)" “无法加载资源:服务器响应状态为400(错误请求)”

The authentication service is running on local IIS server. 身份验证服务在本地IIS服务器上运行。

Anything missing here? 这里缺少什么吗?

import { Injectable } from '@angular/core';
import {Http, Response, RequestOptions, Request, RequestMethod, Headers, HttpModule} from '@angular/http';

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';



@Injectable()
export class AuthService {
    public token: string;

    constructor(private http: Http) {
        var currentUser = JSON.parse(localStorage.getItem('currentUser'));
        this.token = currentUser && currentUser.token;
    }

    login(username, password): Observable<boolean> {
        var authObj = {
            username: username, Password: password, grant_type : 'password'
        }

        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });

        return this.http.post('http://localhost/Authentication/oauth/Token', JSON.stringify({ username: username, Password: password, grant_type: 'password' }), options)
            .map((response: Response) => {

                let token = response.json() && response.json().token;

                if (token) {
                    //set the token property 
                    this.token = token;
                    //user username and jwt token in local storage to keep user loggen in between page refreshes
                    localStorage.setItem('currentUser', JSON.stringify({ username: username, token: token }));
                    //return true to indicate the successful login
                    return true;
                } else {
                    //return false to indicate failed login
                    return false;
                }
            });
        }

    logout(): void {
        this.token = null;
        localStorage.removeItem('currentUser');
    }
}

try with this - 试试这个-

let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); let headers = new Headers({'Content-Type':'application / x-www-form-urlencoded'});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM