我在rails应用上使用了angularjs。我想制作一个分页服务器端数据的搜索表单。
这里是我的形式:
<input type="text" class="search-query" placeholder="Search Products" ng-model="search_terms" />
我的轨控制器可以接受JSON或HTML请求:
def index
# ....
respond_to do |format|
format.json {
# ...
}
format.html {
# ...
}
end
end
这里是我的角度控制器。出于某种原因,$ http服务只能返回rails默认的html响应,而不是json响应。
$scope.$watch('search_terms',function(newValue,oldValue){
var query = newValue;
$http.get('/products',{params:{search_terms:query}, responseType:'json'}).success(function(data) {
// do something
});
});
如果我用这个jQuery.get I DO找回所需的JSON响应,那么为什么角给我的html?
jQuery.get('/products',{search_terms:query},function(data){
console.log(data);
}, 'json')
我检查网络报头和角呼叫和呼叫的jQuery之间的主要区别是,角不设置X-请求-随着头为“的XMLHttpRequest”?
如果我添加,那么我可以得到它的工作。
$http.get('/products',{params:{search_terms:query}, responseType:'json', 'headers':{'X-Requested-With':'XMLHttpRequest'}}).success(function(data) {
// do something
});
但是对Angular来说,新手并不知道这是否是解决此问题的正确方法。感觉有点笨重,每次都必须这样做。有没有更好的方法,或者这是你如何使用Angular和Rails?
可能重复失败的升级从1.1.0到1.1.1后](http://stackoverflow.com/questions/15811062/angular-js-fails-after-upgrade-from-1-1-0-to-1-1-1) – zsong
https://github.com/angular /angular.js/issues/1004 – zsong