1

次の例から判断すると、異なるドメイン間の永続的な接続は正常に機能しているようです。

http://jsfiddle.net/GSEJp

しかし、代わりに「hubConnection」を使用しようとすると、アプリケーションが生の接続ではなくハブを使用するため、ブラウザーは CORS について不平を言います。ブラウザで Javascript コンソールを開き、次のフィドルを実行します。

http://jsfiddle.net/GSEJp/4/

私の Global.asax には次のコードが含まれていますが:

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        this.Context.Response.AddHeader("Access-Control-Allow-Origin", "*");

        if (this.Context.Request.HttpMethod == "OPTIONS")
        {
            this.Context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
            this.Context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept");
            this.Context.Response.End();
        }
    }

では、何が間違っているのでしょうか?それは単に、hubConnections が異なるドメイン間でうまく機能しないということですか、それとも私の側に何かあるのでしょうか? ローカルの REST クライアント (Postman) から同じ MVC アプリケーションに対して通常の XHR 要求を実行できるので、私の側では何も問題はないはずです。

ありがとう!

編集:

さらに掘り下げた後、最初のjsfiddleで使用されているsignalr jsファイルに、この「xdomain」プロパティの定義があることがわかりました。しかし、「hubConnection」の定義がないので、query.signalR-0.5.3.js に切り替えました。しかし、それには「xdomain」の定義がありません。そして、それがおそらくCORSエラーが発生する理由です。

xdomain と hubConnection の両方をサポートするシグナル js クライアントのバージョンはありますか?

再度、感謝します。

4

1 に答える 1