如何从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");
}
});
});