2016-10-07 3 views
2

Использование внешнего вида Я пытаюсь создать событие, когда я отправляю запрос, используя POSTMAN, его рабочий режим, но тот же код в Angularjs не работает. что не так с кодом. Пожалуйста, помогите.Outlook Rest call form angularjs

$scope.createEvents = function(){ 
    var url = "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars"; 
    //var url = "https://outlook.office.com/api/v2.0/$metadata#me/Calendars"; 

    var add_events = { 
       "Subject": "Discuss the Calendar REST API", 
       "Body": { 
       "ContentType": "HTML", 
       "Content": "I think it will meet our requirements!" 
       }, 
       "Start": { 
        "DateTime": "2016-10-10T18:00:00", 
        "TimeZone": "Pacific Standard Time" 
       }, 
       "End": { 
        "DateTime": "2016-10-10T19:00:00", 
        "TimeZone": "Pacific Standard Time" 
       }, 
       "Attendees": [ 
       { 
        "EmailAddress": { 
        "Address": "[email protected]", 
        "Name": "Sathish Gopi" 
        }, 
        "Type": "Required" 
       } 
       ] 
      }; 
    $http({ 
     method: 'POST', 
     url: url, 
     headers:{ 
      'Authorization':'Bearer '+$scope.token, 
      'Content-Type': "application/json", 
      'Accept': 'application/json;odata.metadata=minimal', 
      'Access-Control-Allow-Origin':'*'    
     },   
     data: add_events 
    }).Succes(function (response) { 
     alert("Saved") 
    }); 

Я получаю. Не удалось загрузить ресурс: сервер ответил статусом 406 (не допустимо). Для того, чтобы решить эту проблему, я использую этот код в настоящее время

$scope.createEvents = function(){ 
var url = "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars"; 
//var url = "https://outlook.office.com/api/v2.0/$metadata#me/Calendars"; 

var add_events = { 
      "Subject": "Discuss the Calendar REST API", 
      "Body": { 
      "ContentType": "HTML", 
      "Content": "I think it will meet our requirements!" 
      }, 
      "Start": { 
       "DateTime": "2016-10-10T18:00:00", 
       "TimeZone": "Pacific Standard Time" 
      }, 
      "End": { 
       "DateTime": "2016-10-10T19:00:00", 
       "TimeZone": "Pacific Standard Time" 
      }, 
      "Attendees": [ 
      { 
       "EmailAddress": { 
       "Address": "[email protected]", 
       "Name": "Sathish Gopi" 
       }, 
       "Type": "Required" 
      } 
      ] 
     }; 
$http({ 
    method: 'JSONP', 
    url: url, 
    headers:{ 
     'Authorization':'Bearer '+$scope.token, 
     'Content-Type': "application/json", 
     'Accept': 'application/json;odata.metadata=minimal', 
     'Access-Control-Allow-Origin':'*'    
    },   
    data: add_events 
}).Succes(function (response) { 
    alert("Saved") 
}); 

после использования JSONP как метод я получаю эту ошибку

Uncaught SyntaxError: Неожиданный токен <

+0

Вы проверили информацию о запросе на вкладке сети в инструментах разработки? –

+0

Не удалось загрузить ресурс: сервер ответил статусом 406 (не допустимо) –

ответ

0

406 Не Приемлемым определяются как:

The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

см restapitutorial: http status codes

Вы отправляете следующий Accept заголовок:

'Accept': 'application/json;odata.metadata=minimal' 

сервер говорит, он не может производить этот тип контента. Если вы запустили его с помощью почтового менеджера, посмотрите, на каком заголовке вы принимаете его.

Касательно вашей второй попытки: jsonp не является http-методом/глаголом (GET, PUT, POST, DELETE, PATCH). Я не эксперт по углам, но если вам нужен jsonp, вы можете позвонить method.

JSONP - довольно специфическая (и несколько проблематичная) техника. Так что пока вы можете это сделать, постарайтесь избежать этого.

+0

Спасибо, Такая же часть кода вместо записи в js write в java работает отлично. –

0

я знаю его старый пост, я имел такую ​​же проблему, и это решение, если кто-то попадет в ту же проблему, вы должны использовать https://graph.microsoft.com/v1.0/me/calendar/events в качестве URL

Exemple испытанного кода:

var url = "https://graph.microsoft.com/v1.0/me/calendar/events"; 

    var add_events = { 
              "Subject": "Title", 
              "Body": { 
              "ContentType": "HTML", 
              "Content": " Exemple" 
              }, 
              "Start": { 
               "DateTime": "2010-05-17T18:00:00", 
               "TimeZone": "UTC" 
              }, 
              "End": { 
               "DateTime": "2010-05-17T19:00:00", 
               "TimeZone": "UTC" 
              } 
             }; 
    $http({ 
      method: 'POST', 
      url: url, 
      headers:{ 
              'Authorization':'Bearer '+localStorage.getItem('Your Token here'), 
              'Content-Type':'application/json', 
              'Accept': 'application/json;odata.metadata=minimal', 
              'Access-Control-Allow-Origin':'*', 
              'token_type':'Bearer' 
             }, 
             data: add_events 
            }).then(function successCallback(response) { 

             console.log(response); 

             }, function errorCallback(response) { 

             localStorage.setItem('etat_mytoken', 0); 
             $window.location.href = url_base+'/'+url_base_v+'/app/assets/views/token.html'; 


             });