0
私はローカルWebページから書いたWCFサービスを呼び出そうとしていますが、クロスオリジンエラーは左右に出ていますが、 JavaScriptからの呼び出しを試してください。CORSヘッダ 'Access-Control-Allow-Originが見つかりません。
私はこの問題を解決するために何ヶ月もオンとオフを試みました。私は知恵の終わりにいる。 web.configを数時間、サイトのIISレスポンスヘッダー、無数のブログ、その他のSOの投稿、enable-cors.orgに取り組んできましたが、まだ私はレンガの壁にぶつかっています。
WCFサービスを呼び出しているJSコード:
var url = "http://(foo)/WCF.svc/Bar"
var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.onload = function() {
console.log(xhr.responseText);
}
xhr.send();
WCFサービスのためのC#関数:
[OperationContract, WebInvoke(UriTemplate = "/Bar/", Method = "GET")]
public string Bar() { return "Success!"; }
WCFサービスのWeb.configの関連セグメント:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Max-Age" value="1728000" />
</customHeaders>
</httpProtocol>
</system.webServer>
前述のとおり、他の言語のHTTPリクエストは問題ありません。 C#とActionScript 3は同じWCF呼び出しで正常に動作しますが、JSではこれらのエラーを回避できません。
何が起こっているのでしょうか?
を読むための有効な値ではありませんですOPTIONS "とヘッダを" Content-Type "に設定していますが、それでも問題は解決しません。これも正しいのでしょうか? – wmaynard