2017-02-06 43 views
0

我有一個REST API端點這樣的 -

@RequestMapping(value = "/createform/custom/name", method = RequestMethod.POST) 
public String nameSubmit(@RequestBody String name) { 
    return "you have submitted this name ***** "+name; 
} 

從服務的角度我試圖讓一個REST調用這樣的 -

var data = 'name='+inputName; 
$http.post(uploadUrl, data, { 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
    }).then(
     function(success){ 
      alert(success.data); 
     }, 
     function(error){ 
      alert(error.status); 
     } 
    ); 

現在我總是得到-1 HTTP狀態並且控制進入錯誤塊。我也嘗試@RequestParam而不是@RequestBody,但沒有運氣。但如果我嘗試通過捲曲或鍍鉻郵差來訪問服務,一切正常。只有當我嘗試通過角度應用程序時,我會遇到-1響應。

+0

究竟是什麼錯誤? – Salman

+0

你能夠發佈到不需要任何參數的其他控制器嗎?我會從那個基線開始,然後一旦你可以發佈完全基本的東西,看看你是否可以發佈這個名字。你已經嘗試了什麼? – bowserm

+0

剛剛我測試了刪除參數和POST方法,所以我的控制器方法就像現在這樣@RequestMapping(value =「/ createform/custom/name」)public String nameSubmit(){return「success」; }。從postman再次運行,但從應用程序它仍然登陸到-1錯誤塊。這是一個只有這種方法的新控制器,這是我第一次嘗試訪問這個.... -1與超時錯誤相關聯,所以這是一些CORS相關的問題?如果是,那我該如何設置它? – boolean

回答

0

這是一個CORS問題。我首先嚐試了Spring proposed solutions。但是在Maven倉庫中找不到「gs-rest-service-cors」jar。因此最終寫作a filter如圖所示,事情工作正常。