2017-12-14 4 views
1

別のホストのWebサイトのスクリプトからStarcounterアプリにブラウザリクエストを送信しようとしています。エラーが発生します:StarcounterでCORSを有効にする

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at . This can be fixed by moving the resource to the same domain or enabling CORS

StarcounterアプリでCORSを有効にするにはどうすればよいですか?

答えて

2

Webブラウザで他のホストからの要求を受け入れる場合は、CORSを実装する必要があります。これは他の大部分のアプリケーションフレームワークと同じようにStarcounterで行われます。

いずれのホストからもGETリクエストまたは単純なPOSTリクエスト(標準ヘッダー付き)を受け入れるには、HTTPヘッダーハンドラーに応答ヘッダーAccess-Control-Allow-Origin: *を追加するだけです。たとえば:

Handle.GET("/myapp/some-page",() => { 
    var page = new Json(); 
    var response = new Response(); 
    response.Resource = page; 
    response.Headers["Access-Control-Allow-Origin"] = "*"; 
    return response; 
}); 

は、サーバ(POSTPUTDELETE)に何かを変更するすべての要求を受け入れるには、あなたのPOSTPUTDELETEハンドラで同じURIにOPTIONSプリフライトリクエストハンドラを実装する必要があります。例えば:

Handle.PUT("/myapp/some-page",() => { 
    var page = new Json(); 
    /* some logic ... */ 
    var response = new Response(); 
    response.Resource = page; 
    response.Headers["Access-Control-Allow-Origin"] = "*"; 
    return response; 
}); 

Handle.OPTIONS("/myapp/some-page",() => { 
    var response = new Response(); 
    response.Resource = page; 
    response.Headers["Access-Control-Allow-Origin"] = "*"; 
    response.Headers["Access-Control-Allow-Methods"] = "POST, PUT, GET, OPTIONS"; 
    response.Headers["Access-Control-Allow-Headers"] = "*"; 
    return response; 
}); 

位置はCOR​​Sの詳細を読む - https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS - https://www.html5rocks.com/en/tutorials/cors/

+1

'Handle.AddOutgoingHeader( "HeaderNameは"、 "headerValueの");'レスポンスオブジェクト場合ヘッダを設定するために使用することができます利用できません、 – miyconst

関連する問題