フレンド、API呼び出しWord Webアドイン(Office.Js)が機能していない:CORSの問題?
WordアドインからAPIを呼び出して「アクセスが拒否されました」というエラーが表示されています。私はいくつかの調査を行い、 "Cross Origin Resource Sharing"が原因だと思われます。
1.ウェブAPI
私はWebApiConfig下記参照、すべての起源を受け入れるようにCORSを有効にしている "http://localhost:61546/api/ORG_NAMES" &でローカルのWeb API 2をホストしています。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
2.それはCORSをサポートして確保するために、このAPIをテストするためのテストアプリケーション
、私はページの下に作成し、ローカルホスト上でホストされています:52799/home.htmlを、私は応答を期待得ることができました。私はこれをIE 10 & Chromeでテストしました。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function() {
var obj;
.support.cors = true;
$.getJSON("http://localhost:61546/api/ORG_NAMES/112233",
function (data) {
alert(data.ORG_ID);
});
});
});
</script>
</head>
<body>
<button>Click me</button>
</body>
3. Wordのアドイン
今、私は私の言葉のWebアドインをからこのAPIを呼び出すために望んでいました。別のホストから実行しているWordアドインhttps://localhost:44339/、以下のコードを参照してください。ここでgetJSONは「アクセスが拒否されました」を返します。
var OrgID;
$.getJSON("http://localhost:61546/api/ORG_NAMES/112233",
function (data) {
OrgID = data.ORG_ID;
});
また、私が単語アドインからAPIを呼び出すと、それはフィドラーには行きません。
注:これは "Webアドイン - > Wordアドイン"プロジェクトです。
4.修正 - なぜ私は、ワードアドインからのエラー「アクセスが拒否されました」CORSが問題であるならば、私のテストアプリケーション(#2)はいけない取得しています
わからない助けが必要正しく働いた?
「$ .ajax」、「XMLHttpRequest」を使用してJSONを呼び出そうとしましたが、動作しませんでした。一部の設定が欠落している可能性があります。
ここにお手伝いをしてください。 詳細情報が必要な場合はお知らせください。
私は同じ問題を抱えており、アプリケーションドメインを適切な値に変更しました。 HTTPを使用している場合、CORsエラーが発生するため、httpsを使用します。 https –
という名前のアドインを起動したときに匿名の友人がいることを確認してください.Office-JSを介してCORSリクエストを試み、APIエンドポイントがSSLでない場合、Office JS JavaScriptは拒否しますそれは大丈夫ですか? - それは実際に私が経験していることですが、私はそれがそうであると言っているドキュメントを見つけることができません。 –