(Chrome Dev Networkタブのリクエストを右クリックして)、ブレークポイントは機能しますが、POSTリクエストは機能しません。
どういうわけか、Stack Overflowの助けを借りて、Chrome DevからのリクエストをCURLとしてコピーし、--cookie "XDEBUG_SESSION=PHPSTORM"
を追加するとXDebugがトリガーされることがわかりました。
一般に、ChromeからXDebugを起動するには、「XDebugヘルパー」をインストールする必要があります。これは、 "XDebug Helper"機能の1つがXDebugをトリガーするクッキーを追加することであるという結論に至りました。
Angular HTTPリクエストにwithCredentials: true
を追加しました。 だから、それは次のようになります。
$http.get(path, {withCredentials: true});
var options = {
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
withCredentials: true
}
$http.post(path, params, options);
また、サーバ側のレスポンスヘッダを更新する必要があります:あなたが送った場所に応じて、原点を設定する必要が
header("Access-Control-Allow-Origin: http://localhost:3000");
header("Access-Control-Allow-Credentials: true");
注意からの要求。これはセキュリティのレイヤーを追加します。その前には*
を使用し、どこからでも要求を受け入れることになるからです。複数のホストを簡単に設定するために
:
$http_origin = $_SERVER['HTTP_ORIGIN'];
//The static method returns an array of hosts
if (in_array($http_origin, Config::getAllowedOrigins()))
{
header("Access-Control-Allow-Origin: $http_origin");
header("Access-Control-Allow-Credentials: true");
}
は、この説明が役立つことを願っています!