angle.js – Probleme mit der $http-Rückruffunktion und dem Rückgabecode
过去多啦不再A梦
过去多啦不再A梦 2017-05-24 11:37:44
0
1
844
有一个rest服务,我的代码大致是这样

$http.jsonp(url)

.then(function(data){
    console.log(data)
},function(res){
    console.log(res)
})

Wenn keine Daten in der Datenbank vorhanden sind, zeigen die Netzwerkinformationen der Konsole den Status 200 an

Antwort gibt Daten zurück

Informationen gedruckt von console.log(res)

Warum ist der im Netzwerk angezeigte Status 200, beim Ausdrucken wird er jedoch zu 404 und die Antwortdaten werden nicht zurückgegeben. Jetzt muss ich zur Beurteilung den Rückgabecode = -1 erhalten, wenn keine Daten in der Datenbank vorhanden sind. Wie soll ich diese Antwort erhalten?

过去多啦不再A梦
过去多啦不再A梦

Antworte allen(1)
滿天的星座

URL地址需要添加?callback=JSON_CALLBACK,看你Response的结果是:({"returnCode": "-1"})。正常Response的结果是:/**/angular.callbacks._0({"found":12,"posts": []});
以下是一个在线的示例:angularjs-http-jsonp-service-example,你把callback查询参数去掉,在看一下结果哈。


为什么开发者工具显示的status是200,它只是表示HTTP请求成功。为什么返回404,

if (event) {
  // JS成功加载但回调未被调用
  if (event.type === 'load' && 
    !callbacks.wasCalled(callbackPath)) {
          event = { type: 'error' };
        }
        text = event.type;
        status = event.type === 'error' ? 404 : 200;
  }
}

详细信息请参考AngularJS httpBackend源码。

jsonpReq only ever sets status to 200 (OK), 404 (ERROR) or -1 (WAITING) - httpBackend.js#65

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage