我有一个工厂,它公开了下面使用$http.post()的create()函数。由于某种原因,当从ng调用时,请求将被格式化为HTML。所有的参数都在我想要的位置,但是Rails正在以HTML的形式处理请求。
工厂:
orizabaServices.factory('requestTypeFactory', ["$http", function($http){
var urlBase = '/request_types';
var requestTypeFactory = {};
requestTypeFactory.create = function(params){
data = {};
data.authenticity_token = $("meta[name='csrf-token']").attr("content");
data.request_type = params;
return $http.post(urlBase, data)
};
return requestTypeFactory;
}
])错误:
Started POST "/request_types" for 127.0.0.1 at 2014-08-01 17:10:00 +0000
Processing by RequestTypesController#create as HTML发布于 2014-08-01 17:39:27
您可以指定请求的格式,将'.json‘添加到urlBase中。例如:
var urlBase = '/request_types.json';发布于 2014-08-01 17:16:37
您需要为urlBase添加“完整URL”。如果您请求本地机器上的POST方法
var urlBase = 'http://127.0.0.1/request_types'; 尝尝这个
发布于 2014-08-01 17:32:36
这是因为在默认情况下,rails将所有请求都视为HTML。您可以在您的config/routeres.rb文件中更改此行为,如下所示:
resources :request_types, :defaults => {:format => 'json'}https://stackoverflow.com/questions/25085367
复制相似问题