2017-08-28 45 views
0

我試圖做一個POST請求API和我收到此錯誤:角2的XMLHttpRequest

的XMLHttpRequest無法加載的http:// *。預檢的響應具有無效的HTTP狀態代碼400 但是,當我嘗試進行GET請求時,它會起作用。

我get方法:

getMethod() { 
    return this.http.get<PerfilModel[]>(globals.BASE_URL + 'perfis'); 
} 

我POST方法:

updateMethod(changePass: ChangePassModel) { 
    let h = new Headers(); 
    h.append('Content-Type', 'application/json'); 

    return this.http2.post(globals.BASE_URL + 
          'users/passwords/redefinitions/' + 
          changePass.key, JSON.stringify(changePass),  
          { headers: h } 
          ).map(res => res.json); 
} 

觀察:切換插件CORS被激活。

回答

1

HTTP 400錯誤請求響應狀態碼指示服務器由於語法無效而無法理解請求。客戶不應未經修改就重複此請求。

可能是服務器端,他們允許post方法。

+0

據我所知,服務器端是在C#中,你知道他們需要在服務器端做什麼樣的配置來允許我的請求嗎? –

+0

我希望你不要在後臺工作。請檢查您的後端人員(服務器端) –

1
globals.BASE_URL + 'users/passwords/redefinitions/' + changePass.key + '/' 

如果切換插件CORS在後臺被激活時,你的URL中缺少最後「/」,你可以檢查

+0

嘗試了您的解決方案,仍然收到相同的錯誤。 –

+0

你可以添加你的後端CORS頭配置 – Robert

+0

授權,驗證,令牌,訪問令牌,Access_Token,AccessToken,代碼 –

0

問題是在瀏覽器的同源策略,所以我禁用帶有標誌的安全性:--args --disable-web-security --user-data-dir =「」並且工作正常。