我的设置是这样的,两台服务器都在不同的域中。
- 带有 HTML/JavaScript 应用程序的 SharePoint Foundation 2013,由 Microsoft 在 Office365 上托管。
- Windows Server 2012 和 Dynamics NAV 2013,由 Microsoft 在 Azure 上托管。
我喜欢做的是通过 jQuery 调用 NAV 2013 oData webservice。我检查了我的网络服务是否可以从浏览器访问,并且我确实得到了成功的响应。
但是,当我尝试从 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,但看起来它是一个解析错误?
我还想在我的 Dynamics 服务器上启用 CORS ( http://enable-cors.org/index.html ),但不确定我该怎么做?