0

2 つのリソースを作成しました

angular.module('myApp.services', ['ngResource'])

.factory('Banana', function ($resource) {
    return $resource('http://localhost:8080/banana/:bananaId');
})

.factory('Mango', function ($resource) {
    return $resource('http://localhost:5000/mango/:mangoId');
});

どちらの REST リソースも正しく機能しているようです。Postman で GET リクエストを http://localhost:8080/banana/http://localhost:5000/mango/に送信してテストしました 。どちらの場合も、サーバーはステータス コード 200 OK で応答し、バナナまたはマンゴー オブジェクトの空でない JSON 配列を返しました。

Angular コントローラー内から REST インターフェイスにアクセスすると、Mango.query() は Mangos の配列を正しく返しますが、Banana.query() は空の配列を返します。

Banana のバックエンドは、Jersey を使用して Java で記述されています。

@Path("banana")
public class BananaCollection {
    @GET
    @Produces({MediaType.APPLICATION_JSON})
    public List<Banana> getBananas() {
        return BananaBox.getBananas(); // BananaBox handles the connection to the DB etc.
    }

Mango バックエンドのコードにアクセスできません。

これら2つの違いは何ですか?

4

1 に答える 1

1

両方のアドレスがlocalhost異なるポート番号にありますが、ブラウザーはそれらを異なるドメインとしてカウントします。

どちらの場所も元の html とは異なるポートからのものであるため、ブラウザーのセキュリティが作動し、応答に適切なAccess-Control-Allow-Originヘッダーが含まれていない限り、応答データが JavaScript に到達するのがブロックされます。

于 2015-09-11T14:58:32.377 に答える