使用rest api服务向Sharepoint 2013请求数据以与angular app集成

时间:2014-11-11 21:34:12

标签: angularjs sharepoint-2013

我正在学习sharepoint 2013以获取所需的传入项目。我从未使用.net或任何其他ms技术,所以如果答案是愚蠢的证据,我将不胜感激。

我有一台运行sharepoint 2013和iis v8.0的服务器 目前我遇到了一些问题,但主要的是我试图从角度应用程序访问api服务。我将Intranet的映射设置为服务器的ip,我可以通过Web浏览器访问api。

我还将http响应标头设置为“Access-Control-Allow-Origin”:*在iis中。但是,当我尝试使用angular $ http对象访问api时,我收到一条消息,指出XMLHttpRequest无法加载http://x.x.x.x/_api/web。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许Origin'http:// localhost:9000'访问。响应的HTTP状态代码为401。

这个想法是角度应用完全独立于sharepoint和任何.net技术。我想要做的就是使用其余的api来获取/编辑数据。 我正在提出的要求如下:

angular.module('angYeoman2App')
  .factory('SharePointJSOMFactory', function SharePointJSOMFactory($http, $q) {

  var deffered = $q.defer();
  var data = [];  
  var myService = {};

  SharePointJSOMFactory.getTasksRESTAppWeb = function() {
    var restQueryUrl = "http://x.x.x.x/_api/web"; 
    $http({
      headers: { 'Accept': 'application/json; odata=verbose' },
      method: 'GET',
      url: restQueryUrl
    })
    .success(function(data, status, headers, config){
      console.log(data);
      deffered.resolve();
    })
    .error(function(data, status, headers, config){
      console.log('error', data)
      deffered.resolve();
    });
    return deffered.promise;
  };
  SharePointJSOMFactory.data = function() { 
    return data; 
  };

  return SharePointJSOMFactory;

});

知道我做错了什么吗?我已经读过我需要添加<%Response.AddHeader(“Access-Control-Allow-Origin”,“*”)%>在某个地方,但我不知道什么文件。

我还有另一个问题(此时不太相关):当我尝试使用ip地址访问子网站时,似乎它正在应用父级的主题,并且它不会加载子网站的内容。知道为什么吗?

欢迎任何帮助。 Tks适合您的时间,祝您度过愉快的一天。

0 个答案:

没有答案