Sharepoint如何获取外部web服务的请求



如何从Sharepoint对象模型向外部web服务发出get请求?我尝试使用ajax请求:

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

});

但我有一个错误:访问被拒绝。我的web服务有JSON格式的响应。我读了很多文章,但还没有决定。我读到,ajax在SharePoint中被禁止用于外部web服务。没有ajax我该怎么做?

如果您认为AJAX或特定库的使用阻止了您访问web服务,您可以尝试使用本机JavaScript XMLHttpRequest直接调用web服务。

例如:

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
}

您还应该确认SharePoint的Internet Explorer设置与HTML页面的设置相同,您可以在HTML页面上使用web服务。具体来说,您需要检查浏览器模式和安全设置。

在尝试对网络或代码进行故障排除之前,请确认设置相同时问题仍然存在。

在SharePoint online中,它仅适用于https web服务。不允许来自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");                
    }
});

});

相关内容

  • 没有找到相关文章

最新更新