jQueryのgetJSONメソッドとExtjsのメソッドを使用して、サーバーからjsonデータを取得していました。
Javascript コードはサーバー A の apache2 に配置され、Web サービスはサーバー A の tomcat7 に配置されます。しかし、ホスト B を使用して JavaScript にアクセスすると、JavaScript コードの a メソッドが Web サービスを呼び出します。要求はホスト B からサーバー A に対して行われますよね?
しかし、私はエラーが発生します:
XMLHttpRequest cannot load http://192.168.5.107:8080/restful/product/all/?callback=?&_dc=1384439969320&page=1&start=0&limit=25. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.5.107' is therefore not allowed access.
そして、私は追加する必要があります
?callback=?
私のURLへ。
しかし、jQuery コードで「Uncaught SyntaxError: Unexpected token :」という別のエラーが発生します。私はこれをグーグルで検索しましたが、ほとんどの人の提案はコールバックを削除することです. しかし、私はそれを使用する必要があります。そうしないと、JSON データを取得できません。
jQueryを使用したコードは次のとおりです。
$.getJSON('http://192.168.5.115:8080/restful/standard/id/' + id, function(data) {
console.log('old data:\n');
console.log(data); // use data as a generic object
oldObj = data;
var newObj = Object.keys(oldObj).map(function(k) {
return { key: k, value: oldObj[k] };
});
console.log('new data:\n');
console.log(newObj); // use data as a generic object
});
さらに、コールバック パラメータを追加します。Extjs のコードでは、まだ最初のエラーが発生します。
これが私のExtjsコードです:
// create the data store
var store = Ext.create('Ext.data.Store', {
model: 'Product',
proxy: {
type: 'ajax',
url : 'http://192.168.5.115:8080/restful/product/all/?callback',
reader: {
type: 'json'
}
}
});
私は彼を3日間直そうとしましたが、何も得られませんでした. 誰かが私がそれを解決するのを手伝ってくれることを本当に願っています。