2017-07-25 89 views
2

我試圖從我的Outlook加載項向第三方服務發送POST Ajax請求,但無論我嘗試了什麼,我收到了Error: Access is denied和狀態0(請求永遠不會打中服務器)。發送來自Office加載項的POST AJAX請求

假設我們在outlook的後面運行IE9或8,我嘗試了像https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest這樣的舊學校黑客。

$.ajax({ 
    url: endpoint, 
    data: JSON.stringify({'1':'2'}), 
    // headers: {'X-Requested-With': 'XMLHttpRequest'}, 
    contentType: 'text/plain', 
    type: 'POST', 
    dataType: 'json', 
    error: function(xhr, status, error) { 
     // error 
     } 
}).done(function(data) { 
    // done 
    }); 

是否還有更多我需要實現?因爲我添加我的域名以顯示AppDomain屬性。

乾杯

回答

5

下面需要做的事情,以發送請求給第三方服務...

  • 添加服務的URI來AppDomain列表(你已經做到了。)
  • 的服務必須有SSL端點; 「https://your.domain」必須包含在「AppDomain」條目中(請參閱上文)
  • 該服務必須允許CORS請求用於您的應用程序(託管Outlook App URI)域或任何域。這取決於服務創建者是否允許或不允許通過Ajax進行客戶端應用程序連接。

由於觀察您的代碼,我注意到您發送的是JSON對象,但將內容類型設置爲「text/plain」。聯繫服務創建者以獲取他們接受請求的數據類型的信息。通常服務允許「application/json」,但不是純文本。

+1

值得注意的另一點值得注意的是,Outlook for Windows使用的是IE11,但加載項跨平臺運行,因此假設您的用戶正在運行哪個瀏覽器/引擎是不安全的。 –