2016-07-24 2 views
0

Sharepoint 개체 모델에서 외부 웹 서비스로 요청을받을 수있는 방법은 무엇입니까? 나는 Ajax 요청으로 시도했다 :Sharepoint 외부 웹 서비스에 요청 받기

$.get("http:/servername/webservice_name", function(data, status) { 
alert("Data: " + data[0] + "\nStatus: " + status); 

}});

하지만 오류가 있습니다. 액세스가 거부되었습니다. 웹 서비스에 JSON 형식의 응답이 있습니다. 많은 기사를 읽었지만 결정이 없습니다. 외부 웹 서비스를 위해 SharePoint에서 금지 된 아약스를 읽었습니다. 아약스없이 어떻게 만들 수 있습니까?

+0

셰어 포인트 버전? 같은 도메인을 사용하는 서비스입니까? –

+0

Sharepoint 2013 온라인. 아니요, 웹 서비스에 다른 도메인이 있습니다. – Dim

+0

액세스가 거부되었습니다. 사용자가 외부 웹 사이트에서 사용 권한이 없음을 의미합니다. – bresleveloper

답변

0

SharePoint 온라인에서는 https 웹 서비스에서만 작동합니다. https 웹 사이트의 http는 허용되지 않습니다. https와 함께 작동하는 최종 코드 :

$(document).ready(function(){ 
$.ajax({ 
    url: "https://services.odata.org/Northwind/Northwind.svc/Customers", 
    type: "GET", 
    headers: { "ACCEPT": "application/json;odata=verbose" }, 
    async: false, 
    success: function (data) { 
     if(data.d.results.length>0){ 
      alert("Results Count:"+data.d.results.length); 
     }else{ 
      alert("no data"); 
     } 
    }, 
    error: function() { 
     //alert("Failed to get details");     
    } 
}); 

}};

0

AJAX 또는 특정 라이브러리를 사용하여 웹 서비스에 액세스하지 못한다고 생각되면 기본 JavaScript XMLHttpRequest을 사용하여 직접 웹 서비스를 호출 해 볼 수 있습니다. 예를 들어

:

var verb = "GET"; 
var url = "http://servername/webservice_name"; 
var xhr = new XMLHttpRequest(); 
xhr.open(verb, url, true); 
xhr.setRequestHeader("Content-Type","application/json"); 
xhr.onreadystatechange = function(){ 
    if(xhr.readyState == 4){ 
     myCallbackFunction(xhr.status, xhr.responseText); 
    } 
}; 
xhr.send(data); 

function myCallbackFunction(status, text){ 
    // do something with the results based on the status 
} 

당신은 또한 당신이 웹 서비스를 작동시킬 수있는 HTML 페이지에 대한이기 때문에 Internet Explorer 설정은 SharePoint 용 동일한 것을 확인해야합니다. 특히 브라우저 모드 및 보안 설정을 확인해야합니다.

네트워크 또는 코드 문제를 해결하기 전에 설정이 동일 할 때 문제가 계속 발생하는지 확인하십시오.

관련 문제