Freunde,API-Aufruf von Word-Web-Add-In (Office.Js) funktioniert nicht: CORS-Problem?
Ich versuche API aus Word-Add-in aufrufen und erhalten "Zugriff verweigert" Fehler. Ich habe etwas recherchiert und es sieht so aus, als ob "Cross Origin Resource Sharing" die Ursache ist.
1. Web API
Ich bin Hosting Web API 2 lokal an "http://localhost:61546/api/ORG_NAMES" & Ich habe CORS aktiviert alle Ursprünge zu akzeptieren, unter WebApiConfig See.
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. Test Application
diese API Um zu testen, es CORS unterstützt, um sicherzustellen, ich habe unten Seite und gehostet auf localhost erstellt: 52799/home.html, ich in der Lage war, erwartete Antwort zu erhalten . Ich habe dies in IE 10 & Chrome getestet.
<!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-Add-In
nun diese API von meinem Word Web-Add-In nennen ich wollte. Word Add-In läuft von verschiedenen Host https://localhost:44339/, siehe unten Code. Hier gibt getJSON "Zugriff verweigert" zurück.
var OrgID;
$.getJSON("http://localhost:61546/api/ORG_NAMES/112233",
function (data) {
OrgID = data.ORG_ID;
});
Auch wenn ich API von Word-Add-in aufrufen, wird es nicht zu Fiddler gehen.
Hinweis: Dies ist das Projekt "Web-Add-Ins -> Word-Add-In".
4. Fix - Need Hilfe
nicht sicher, warum ich erhalte "Zugriff verweigert" Fehler aus Word-Add-In, wenn CORS die Frage ist dann meine Testanwendung (# 2) nicht habe gearbeitet, richtig?
Ich habe versucht, JSON mit "$ .ajax", "XMLHttpRequest" aufrufen, aber es hat nicht funktioniert.Ich möglicherweise einige Konfigurationseinstellungen fehlen.
Schätzen Sie jede Hilfe hier. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
Ich hatte die gleichen Probleme, ich änderte die App-Domänen auf die entsprechenden Werte, und auch Sie müssen sicherstellen, dass Sie sind mit https, denn wenn Sie http verwenden, erhalten Sie den CORs-Fehler. Stellen Sie sicher, dass, wenn Sie Ihr Word-Add-in starten, dass Sie https sind –
Hallo anonymer Freund - also sagen Sie, dass, wenn Sie eine CORS-Anfrage über Office-JS versuchen, und Ihre API Endpunkt ist nicht SSL, wird Office JS JavaScript zurückgewiesen es direkt? - Das ist in der Tat, was ich erlebe, aber ich kann keine Dokumentation finden, die besagt, dass das der Fall ist. –