我正在anghular 4 PROJET,我有一個關於HTTP請求和響應從像服務器問題:響應預檢請求未通過訪問控制
的XMLHttpRequest不能加載 http://192.168.1.110:8000/updateUser/Contacts/ebba56e9-72eb-971a-9bb6-552de74d0d69。對預檢請求的響應未通過訪問控制檢查:否 「所請求的 」資源上存在「Access-Control-Allow-Origin」標頭。原因'http://localhost:4200'因此不允許 訪問。響應有HTTP狀態代碼405
我必須看看這個prblem和我發現我需要從服務器端添加頁眉attribut,我做到了,我看到的是,響應包含這個頭: HEADERS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: GET, POST, OPTIONS,PUT
Access-Control-Allow-Origin: *
Cache-Control: no-cache
Connection: close
Content-Type: application/json
Date: 2017 May 31 13:15:48
Host: 192.168.1.110:8000
X-Debug-Token: fbb39b
X-Debug-Token-Link: http://192.168.1.110:8000/_profiler/fbb39b
X-Powered-By: PHP/5.6.30
我的控制器:
/**
*
* @Get("/getMenu/{id}")
*/
public function getMenuAction($id ,Request $request){
$fr= $request->get('fr') ;
$url = $this->container->getParameter('serverUri'). wsUrl::Ws_GetMenu . $uniquecsoecid. '?fr='.$fr;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, wsUrl::ws_Headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
$res = new Response();
$res->setCharset('UTF-8');
$res->headers->set('Access-Control-Allow-Method','PUT');
$res->headers->set('Access-Control-Allow-Credentials','true');
$res->headers->set('Access-Control-Allow-Origin','*');
$res->headers->set('Access-Control-Allow-Headers','auth_token');
$res->setContent($response);
return $res ;
}
更多細節我使用的symfony調用另一個後端,並返回該後端的結果Web服務,以我的角度CLIEN t方面的項目。
但是我感到困惑的是,如果我嘗試從restlet或郵遞員(鉻擴展名)發送請求並從我的角度調用Web服務根本無法正常工作,那麼Web服務將正常工作。 什麼是錯誤的,請一定幫助
我得到405錯誤,byt我使用鉻瀏覽器的方式 –