私のセットアップはこのようなもので、両方のサーバーが異なるドメインにあります。
- Microsoft が Office365 でホストする、HTML/JavaScript アプリを使用した SharePoint Foundation 2013。
- Windows Server 2012 と Dynamics NAV 2013 は、Microsoft によって Azure でホストされています。
私がやりたいことは、jQuery を介して NAV 2013 oData Web サービスを呼び出すことです。ブラウザから Web サービスにアクセスできることを確認しましたが、正常な応答が得られます。
しかし、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 ) を有効にすることも考えましたが、これを行う方法がわかりません。