1

$http.get を使用して SharePoint Online 検索 API を呼び出す AngularJs (v. 1.3.15) を使用して、Outlook アドイン (Office 365 用) を作成しています。検索呼び出しを、プライマリ コントローラーから呼び出す Angular ファクトリに抽象化しました。

問題は、$http.get 呼び出しがコールバックの成功関数またはエラー関数をまったく呼び出さないことです。IE でトレースすると、SharePoint Online への要求が送信されていることさえわかりません。

スタンドアロンの Angular SPA で非常によく似たコードを使用すると、問題なく動作します。ここに私がやっていることを説明するための疑似コードがあります...

アプリ コントローラー

searchFactory.search(terms).then(function(response){
    $scope.results = response.data;
},
function(error){
    $scope.status = "Error";
});

工場を検索:

factory.search = function(terms){
    var queryStr = buildQueryStr(terms);    
    var results = $http.get(queryStr);
    return results;
}

ファクトリ コードは実行されますが、検索エンドポイントへの要求が回線を通過することはなく、コントローラーの呼び出しで成功関数もエラー関数もトリガーされません。

JavaScript コンソールの唯一のエラーは、conversationId がないことに関するものですが、SPO API を呼び出していることを考えると、これは関係がないようです。呼び出しが X ドメインであることに注意してください。

私は完全に困惑しています。任意のポインタをいただければ幸いです。

4

1 に答える 1

0

dev.office.com によると、同一オリジン ポリシーにより、クロスドメイン リクエストは Outlook Web によってブロックされます。

http://dev.office.com/docs/add-ins/develop/addressing-same-origin-policy-limitations

SharePoint オンライン API は CORS をサポートしているため、それを使用してポリシーを回避できると思います。

https://msdn.microsoft.com/en-us/office/office365/howto/create-web-apps-using-cors-to-access-files-in-office-365

于 2016-06-13T02:25:41.287 に答える