Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Node.js 如何使用“发布请求”;内容类型";:&引用;应用程序/x-www-form-urlencoded“;?_Node.js_Angular_Oauth 2.0_Http Post - Fatal编程技术网

Node.js 如何使用“发布请求”;内容类型";:&引用;应用程序/x-www-form-urlencoded“;?

Node.js 如何使用“发布请求”;内容类型";:&引用;应用程序/x-www-form-urlencoded“;?,node.js,angular,oauth-2.0,http-post,Node.js,Angular,Oauth 2.0,Http Post,我需要请求在oAuth2身份验证服务器中获取toke 我可以在邮递员那里提出请求并得到代币,但我不能在邮递员那里提出同样的请求 我的CORS配置良好,因为其他请求工作正常 下面是HTTP请求的详细信息 POST /oauth/token HTTP/1.1 Host: localhost:8080 Authorization: Basic YXBwbGljYXRpb246c2VjcmV0 Content-Type: application/x-www-form-urlencoded Cache-C

我需要请求在oAuth2身份验证服务器中获取toke

我可以在邮递员那里提出请求并得到代币,但我不能在邮递员那里提出同样的请求

我的CORS配置良好,因为其他请求工作正常

下面是HTTP请求的详细信息

POST /oauth/token HTTP/1.1
Host: localhost:8080
Authorization: Basic YXBwbGljYXRpb246c2VjcmV0
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: 9f9582e9-fe73-499f-d7f7-82498a974e39

grant_type=password&username=pedroetb&password=password
在angular 4中,我尝试了这种方法

let headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    headers.append("Authorization","Basic YXBwbGljYXRpb246c2VjcmV0");

    var obtainTokenUrl = 'http://localhost:8080/oauth/token';

    this._http.post(obtainTokenUrl + "?grant_type=password&username=pedroetb&password=password", null, {headers: headers}).subscribe(response => {
      console.log(response);
    });
但这是行不通的

这是邮递员请求的屏幕截图 标题:

正文:


那么如何从angular 4发出相同的请求呢?

下面是我检索用户数据的简单代码。请参见,标题作为标题选项提供。您可以在中查看更多信息

createUser(用户:用户):可观察{
const submittedUser=JSON.stringify(user);//user是表单提交的数据对象
const headers=新的头({'Content Type':'application/json'});
const options=newrequestoptions({headers:headers});
返回此.http.post(baseURL+'user/create',submittedUser,options)
.map((响应:响应)=>{this.processHttpmsgService.extractData(响应);})
.catch(error=>Observable.throw(error));
}

以下是我检索用户数据的简单代码。请参见,标题作为标题选项提供。您可以在中查看更多信息

createUser(用户:用户):可观察{
const submittedUser=JSON.stringify(user);//user是表单提交的数据对象
const headers=新的头({'Content Type':'application/json'});
const options=newrequestoptions({headers:headers});
返回此.http.post(baseURL+'user/create',submittedUser,options)
.map((响应:响应)=>{this.processHttpmsgService.extractData(响应);})
.catch(error=>Observable.throw(error));
}
PostRequest(url:string,data:any){

}

也别忘了进口 从'@angular/Http'导入{Http,Headers,RequestOptions}

PostRequest(url:string,data:any){

}

也别忘了进口
从'@angular/Http'导入{Http,Headers,RequestOptions}

当我提出请求时,我没有令牌。是用来拿代币的。实际上我是如何发送授权类型、用户名和密码的?这个.http.post(tokenURL,“username=“+username+”&password=“+password+”&grant\u type=password“,{headers:headers})是我尝试过的方法。但它向我发送了“XMLHttpRequest无法加载。飞行前响应的HTTP状态代码无效400”抱歉,但似乎您应该检查您的服务方法,因为它对我来说是一个很好的解决方案。第7行需要一个令牌。但是在这个请求中,我要求服务器提供一个令牌。当我发出请求时,我没有令牌。是用来拿代币的。实际上我是如何发送授权类型、用户名和密码的?这个.http.post(tokenURL,“username=“+username+”&password=“+password+”&grant\u type=password“,{headers:headers})是我尝试过的方法。但它向我发送了“XMLHttpRequest无法加载。飞行前响应的HTTP状态代码无效400”抱歉,但似乎您应该检查您的服务方法,因为它对我来说是一个很好的解决方案。第7行需要一个令牌。但是在这个请求中,我要求服务器向我提供一个令牌。我可以发出普通api请求,但不知道如何使用所有这些头和表单数据(如application/x-www-form-urlencoded)发送请求。我可以发出普通api请求,但不知道,如何发送包含所有这些标头和表单数据(如application/x-www-form-urlencoded)的请求。
createUser(user: User): Observable<User> {
    const submittedUser = JSON.stringify(user); // user is form-submitted data object
    const headers = new Headers ({ 'Content-Type': 'application/json' });
    const options = new RequestOptions({headers: headers});
    return this.http.post(baseURL + 'user/create', submittedUser, options)
      .map((response: Response) =>  {this.processHttpmsgService.extractData(response);})
      .catch(error=> Observable.throw(error));
  }
var headers = new Headers();

let req = JSON.stringify(data);

 this.onRequest("request: " + url + "data: " + req);

headers.append ("content-Type","application/json");
headers.append("charset","utf-8;");
headers.append("Access-Control-Allow-Origin", "*");
var token = localStorage.getItem('token');
headers.append("Authorization","Bearer "+ token);

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

  // don't have the data yet
 return new Promise(resolve => {

   this.http.post(url,req,options)
   .map(res => res.json())
   .subscribe(data => {
     resolve(data);

     this.onSuccess(data);
  }
  ,error => {
 this.onError(error);
  }
  );
});