【问题标题】:Why are the request headers in the following Angular 5 code not been passed in the request?为什么以下 Angular 5 代码中的请求标头没有在请求中传递?
【发布时间】:2018-04-24 00:49:40
【问题描述】:

所以我无法让这个 http 请求对象随请求一起发送我的标头。

   loginUser(email,password){     
   console.log("loginuser");     
   let formData:FormData = new FormData();  
   formData.append("format","json");
   formData.append("email",email);
   formData.append("password",password);      
   let headers = new HttpHeaders();       
   headers.append('command', 'ProcessLoginPos');                    
   headers.append('Access-Control-Allow-Origin', '*');    
   const req = new HttpRequest('POST', 'http://localhost:8080/ProjectOne/', formData, {         'headers':headers,      reportProgress: true,       responseType: 'text'      });
return this.http.request(req,{},{"command": "ProcessLoginPos"});   
}

【问题讨论】:

    标签: javascript angular http post angular5


    【解决方案1】:

    你的最后一行应该遵循这个模式:

    return this.http.post(url, body, { headers: headers, params: params })
    

    最后你应该得到类似的东西:

    return this.http.post('http://localhost:8080/ProjectOne/', formData, { headers: headers })
    

    结果(但我不知道,这里为什么需要new FormData()):

    loginUser(email, password) {         
       let formData: FormData = new FormData();  
       formData.append("format", "json");
       formData.append("email", email);
       formData.append("password", password);      
       let headers = new HttpHeaders();       
       headers.append('command', 'ProcessLoginPos');                    
       headers.append('Access-Control-Allow-Origin', '*');    
       return this.http.post('http://localhost:8080/ProjectOne/', formData, { headers: headers })   
    }
    

    【讨论】:

    • 它仍然无法工作,例如我在服务器中收到请求,但没有收到我在客户端中设置的标头。
    • 别在意我之前的评论,你的解决方案奏效了!
    • @AntonioTapia,很高兴听到这个消息)
    猜你喜欢
    • 2021-08-10
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多