ajax を介して投稿リクエストを別のドメインに送信し、json レスポンスを取得しようとしています。サーバーは会社の敷地内にあり、ログを介して、json で応答を送信していることがわかります。
以下は私の試みのサンプルです:
1)
function makeRequest(strURL){
$.get(strURL+"?callback=rest.draw_table_dyn", "{}",
function(resp){
rest.draw_table_dyn(resp);
});
}
2)
xmlhttpPost : function(strURL) {
var xmlHttpReq = false;
var self = this;
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader("Content-Type", "application/json");
self.xmlHttpReq.onreadystatechange = function() {
rest.draw_table_dyn(self.xmlHttpReq.responseText);
}
self.xmlHttpReq.send(null);
}
ただし、次のような問題が発生します。
1) サーバーは常に、「GET」または「POST」リクエストではなく「OPTIONS」リクエストでヒットします。このリンク (http://engin.bzzzt.biz/2010/01/25/cross-domain-xhr-access-control-preflight/) から、これが標準のプリフライト リクエストであることがわかりました。
しかし、POSTリクエストを行うことは可能ですか? $.post、$.ajax、または $.get を使用してみましたが、役に立ちませんでした。
2) 応答データが空です。ページにアイテムを入力するには、データが必要です。jsonを読む方法はありますか?現在、戻りステータスが 0 の空の文字列のみを取得しています。
xmlHttpRequest、$.ajax、$.get、および $.post を試して、リクエストを送信し、json を受信しても無駄でした。
タグにスクリプトを保持することについて、こちら(http://stackoverflow.com/questions/4221458/how-to-make-a-jsonp-call-to-an-api-using-jquery)を読みました。これも私にとってはうまくいきませんでした。ここで私が間違っていることはありますか?