0

REACTOME REST APIにアクセスしてデータを取得したいと考えています。私はデータgetJSON()を取得するために使用していJSONます。callback function nameしかし、名前はウェブサイトごとに異なるため、わかりません。

以下は機能していません:

    $.getJSON('http://reactomews.oicr.on.ca:8080/ReactomeRESTfulAPI/RESTfulWS/frontPageItems/homo+sapiens?jsoncallback=?', function(data) {

console.dir(data); });

jQueryのドキュメントには、jQueryに任せてコールバック関数を決定できると記載されているため、AJAXも使用してみました。

$.ajax({
   type: 'GET',
    url: 'http://reactomews.oicr.on.ca:8080/ReactomeRESTfulAPI/RESTfulWS/frontPageItems/homo+sapiens',
    dataType: 'jsonp',
    success: function(data) {
       console.dir(data);
    },
    error: function(e) {
       console.log("error");
4

2 に答える 2

1

すべての兆候は、サービスがJSONP をサポートしていないことを示しています。

jQuery の実際のエラーは次のとおりTypeError: Property 'message' of object Error: jQuery191005664544063620269_1366270377427 was not called is not a functionです。

JSONP リクエストを発行したときのサーバーからの応答を調べると、コールバック関数でラップされていません。だからそれはこれを返します...

[ {
  "dbId" : 109581,
  "displayName" : "Apoptosis",
  "created" : {
    "dbId" : 109608,
....

しかし、JSONP をサポートするには、代わりに次のようにする必要があります。

jQuery191005664544063620269_1366270377427([ {
  "dbId" : 109581,
  "displayName" : "Apoptosis",
  "created" : {
    "dbId" : 109608,
....)

同じオリジンのセキュリティ制限に対処するには、別の方法を見つける必要があります。

最も簡単なオプションは、ブラウザ経由で直接アクセスするのではなく、サーバー側のプロキシを使用することです。言い換えると、jQuery はユーザー自身の制御下 (できれば HTML を提供しているドメインと同じドメイン) でサーバーを呼び出し、サービス リクエストを渡し、適切な応答を返します。または、クライアント上で動的にする必要がない場合は、サーバー側でスクリプト全体 (ASP.NET、php など) を作成するだけです。

于 2013-04-18T07:45:05.643 に答える