3

私は自分から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
4

0 に答える 0