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/以及为什么我收到 OPTIONS 请求而不是 GET 请求?对于与您的问题基本相同的问题。

于 2013-08-22T21:52:31.777 回答
1

正如@JSager 所提到的,问题是一个跨域问题。

由于我可以控制服务器端(运行 Rails 服务器),因此我必须将服务器更改为它以接收跨站点请求。

就我而言,我必须安装一个 gem 并按照它的说明进行操作。

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

这为我解决了这个问题。基于 Angularjs 的应用程序没有进行任何更改。

于 2013-08-23T09:36:24.993 回答