我想检查我的solr核心是上升还是下降。我使用AngularJS。
我创建了一个工厂和一个控制器。工厂 pingFactory 包含指向solr核心地址的$http.get
方法。控制器 pingController 使用工厂。
我在旧的AngularJS公约中看到了对该问题的一些解释,有时很难从字面上翻译它(在新的约定中)。
我尝试在制作更复杂的功能之前收到一条消息,看它是否有效;我使用了 logger 字,但我不知道这是否是最好的方法(尤其是当我将 logger 放在我的控制器中时)。
function pingFactory ($http, logger) {
var service = {testPing: testPing};
return service;
function testPing () {
return $http.get('http://10.1.10.10:8279/solr/#/offers');
}
}
function pingController (pingFactory) {
var vm = this;
pingFactory.testPing().then(function () {
logger.info('a');
})
}
编辑我:我在文件中删除了所有 logger 字样,然后FireBug告诉我。
GET http://10.1.10.10:8279/solr/#/offers 200 OK X 30ms
在OK和毫秒时间之间有一个很大的红叉。我有一个CORS警告。
编辑II :我使用了错误的网址,我必须取消#并添加/ admin / ping(如cheffe所说)。 我还有红十字和CORS警告。 你知道我是否可以将http代码响应放在一个变量中,该变量将显示在我的网页中?
我尝试了几种方法来显示此 plunker 中的http状态,但没有成功......
我认为http请求没有结果,因为我在控制器中写vm.data = pingFactory.testPing
时无法获取数据,并且
return $http.get('http://10.1.10.10:8279/solr/#/offers')
.then(function (response) {
var status = response.status;
});
让我感到沮丧的是,在错误消息中,FireBug给了我HTTP状态,我无法接收它。
我看到了这些模块https://github.com/ringtail/angular-ping和https://github.com/AntonAI/Angular.js-Ping-Service,但我认为我无法正确使用它们。
您是否了解如何在触发或不触发CORS警告的情况下获取HTTP状态?
我决定通过编写这段代码来测试servlet
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String ur_str = "http://10.10.10.10:8000/solr/offers/admin/ping?wt=json";
URL url = new URL(ur_str);
URLConnection yc = url.openConnection();
if ( yc instanceof HttpURLConnection)
{
HttpURLConnection httpConnection = (HttpURLConnection) yc;
int code = httpConnection.getResponseCode();
out.println("<h1>" + code + "</h1>");
}
else
{
System.err.println ("error - not a http request!");
}
}
而且,哦!它的工作。为什么?是因为AngularJS还没有为这种类型的请求做好准备吗?