1

angularjs を介して基本的な $resource リクエストを取得しようとしています。これをローカルコンピューターで実行しています。

ただし、404 が返されます。ブラウザーで単純な get 要求を実行すると、json が読み込まれます。これは、chrome devtools によって表示されるリクエストです。(質問: リクエスト モードが OPTIONS になっているのはなぜですか? それが問題なのでしょうか?)

Request URL:http://example.com/api/rentable_properties.json
Request Method:OPTIONS
Status Code:404 Not Found

リクエストを行おうとしているコントローラーは次のとおりです。

'use strict';

angular.module('adminApp')
.factory('Property', function($resource)
{
  return $resource('http://example.com/api/rentable_properties.json/:propertyId');
});

angular.module('adminApp')
  .controller('PropertiesCtrl', function ($scope, Property, $location) {
    $scope.properties = Property.query()  
4

2 に答える 2

1

ここでの答えは、ブラウザがクロスドメインの問題に直面しているということです

説明については、http://metajack.im/2010/01/19/crossdomain-ajax-for-xmpp-http-binding-made-easy/を参照してください。GET 要求ではなく OPTIONS 要求を受け取るのはなぜですか? 基本的にあなたと同じ質問です。

于 2013-08-22T21:52:31.777 に答える
1

@JSager が述べたように、問題はクロスドメインの問題でした。

サーバー側 (Rails サーバーを実行) を制御していたので、クロスサイト リクエストを受信するためにサーバーを変更する必要がありました。

私の場合、gem をインストールしてその指示に従わなければなりませんでした。

https://github.com/cyu/rack-cors

これで問題は解決しました。Angularjs ベースのアプリに変更はありません。

于 2013-08-23T09:36:24.993 に答える