Моя настройка подобна этой, оба сервера находятся в разных доменах.Потребление Динамика NAV oData webservice с использованием перекрестного домена jQuery
- SharePoint Foundation 2013 с приложением HTML/JavaScript, размещенное на Office365 от Microsoft.
- Windows Server 2012 с Dynamics NAV 2013, размещенный на Azure от Microsoft.
Что мне нравится делать, это позвонить в веб-службу NAV 2013 oData через jQuery. Я проверил, что мой веб-сервис доступен из браузера, и я получаю удачный ответ.
Но когда я пытаюсь вызвать его из своего приложения в SharePoint, я получаю сообщение об ошибке.
SyntaxError: syntax error <?xml version="1.0" encoding="utf-8" standalone="yes"?>
Это мой JQuery код:
var call = $.ajax({
url: 'http://url:port/DynamicsNAV70_Instance/odata/MyService',
type: "GET",
crossDomain: true,
username: "username",
password: "password",
dataType: "jsonp",
headers: {
Accept: "application/json;odata=verbose"
}
});
call.done(function (data, textStatus, jqXHR) {
console.log(data.d);
});
call.fail(function (jqXHR, textStatus, errorThrown) {
console.log("Call failed. Error: " + jqXHR.statusText);
});
Я обнаружил, что'jsonp' не очень хорошо работает с ответом XML, но этот вызов должен возвращать JSON не должен это?
Кроме того, в FireBug я могу увидеть полный XML, возвращаемый службой, и это совершенно правильно. Итак, мое приложение действительно получает правильный XML, но похоже, что это ошибка синтаксического анализа?
Я также расскажу о том, как включить CORS (http://enable-cors.org/index.html) на моем сервере Dynamics, но не уверен, как я могу это сделать?