ServiceNow インスタンスを実行しており、JSON ライブラリを使用してすべてのユーザーを取得しようとしています。このデータをダンプする URL を入力すると、ユーザーの JSON リストを簡単に表示できます。この JSON リストを取得してユーザーのリストを作成する Web ページを作成しようとしています。クロスドメインの問題が発生し続けています。CORS を使用できないため、ユーザーの情報に従ってスクリプトを動的にロードしようとしています。これは、私が機能させようとしているコードです。
function test() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
var domain = document.getElementById("domain").value;
var targeturl = "https://" + username + ":" + password + "@"
+ domain + "/sys_user_list.do?JSON&sysparm_action=getRecords";
$.getScript(targeturl + "&callback=dumpData")
function dumpData(data) {
alert(data);
}
}
この時点で、スクリプトは正しく読み込まれているように見えますが、構文エラーが発生します。
キャッチされない SyntaxError: 予期しないトークン:
JSON データを取得するには、getScript 呼び出しをどのように行う必要がありますか? これは有効な方法でもありますか?この問題を理解しようとしているときに偶然出くわしました.それが私の唯一の選択肢のようです. YQL を試しましたが、うまくいきません。
編集:
$.ajax を利用するためにコードをやり直しました。コードは次のとおりです。
$.ajax({
url: 'https://' + username + ':' + password + "@" + domain + '/sys_user_list.do?JSON&sysparm_action=getRecords&callback=test',
type: "GET",
success: function (data) {
alert("hello");
},
crossDomain: true,
dataType: "jsonp",
jsonpCallback: 'test'
});
function test(data) {
alert("It worked!");
}
これに関連するすべての投稿を精査しましたが、まだこれを理解できません。この状況を改善する方法について誰かアドバイスはありますか? それでも無効な構文エラーが表示されます。このJSONデータを取得することはできませんか?
データを取得するために YQL も試しましたが、セキュリティの問題も発生します。
ありがとう、
クリス