suchen

Heim  >  Fragen und Antworten  >  Hauptteil

angle.js – Probleme mit der $http-Rückruffunktion und dem Rückgabecode

有一个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梦2734 Tage vor847

Antworte allen(1)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-05-24 11:39:44

    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

    Antwort
    0
  • StornierenAntwort