私は自分からcorsリクエストを行っています
クライアント:http://mypcname.companyname
サービススタックへ
サーバ:http://mypcname.companyname:83/customersInformation
Thats は、javascript スーパーエージェント ライブラリを使用したリクエストです。
superagent.get(requestUrl)
.set('Authorization', "basictoken " + getToken())
.set('Accept', 'application/json')
.end(function (response) {
});
この get リクエストは、Web APIで完全に正常に機能します。したがって、私の意見では、問題はクライアント側ではありません。
それは私のサービススタックのセットアップです:
Plugins.Add(new CorsFeature(allowedOrigins: Settings.Default.SmartAllowedCorsOrigin, allowCredentials: true, allowedHeaders: "Content-Type, Authorization"));
RequestFilters.Add((httpReq, httpRes, requestDto) =>
{
if (httpReq.HttpMethod == "OPTIONS")
{
httpRes.End();
}
});
これが、customersInformation データを使用してクラスをセットアップした方法です。
[Route(RouteTemplate,"GET, OPTIONS",...)]
上記のオプション リクエスト フィルターを使用したため、オプション 404 エラーはなくなりましたが、さらに悪いことがあります...:
OPTIONS http://mypcname.companyname:83/customersInformation Origin http://mypcname.companyname is not allowed by Access-Control-Allow-Origin.
コアを最終的に機能させるには、サーバー側で何をする必要がありますか?
アップデート
レスポンヘッダーデータを取得する神話の質問への回答として:
これは、cors プラグインのデフォルト値を使用してサーバーからの応答として取得した生データです: (フィドラー生タブ)
HTTP/1.1 200 OK
Server: Microsoft-HTTPAPI/2.0
Date: Tue, 29 Oct 2013 10:04:48 GMT
Content-Length: 0
Google Chrome のエラー:
OPTIONS http://mypcname.companyname:83/customersInformation Origin http://mypcname.companyname is not allowed by Access-Control-Allow-Origin.
オプションの後に呼び出す必要がある Get メソッド (少なくとも私の予想です) は、おそらく cors origion エラーが原因でヒットすることはなく、以前に発生した OPTIONS でさえ許可されていないためです。
更新 2
サーバーへのリクエスト:
OPTIONS http://mypcname.companyname:83/customersInformation HTTP/1.1
Host: mypcname.companyname:83
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Request-Method: GET
Origin: http://mypcname.companyname
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
Access-Control-Request-Headers: accept, authorization, x-requested-with
Accept: */*
Referer: http://mypcname.companyname/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4