Ich habe einen Javascript-Client mit NSWAG von einer ASP .NET Rest API generiert. Aber ich finde ein paar Fehler, wenn ich versuche, eine API-Methode aufzurufen.Kann die Eigenschaft 'baseUrl' von undefined nicht setzen
Der Fehler in Cause ist: TypeError: Eigenschaft 'BaseUrl' von undefined kann nicht festgelegt werden.
var AuthClient = (function() {
function AuthClient($http, baseUrl) {
this.baseUrl = undefined;
this.http = null;
this.jsonParseReviver = undefined;
this.http = $http;
this.baseUrl = baseUrl !== undefined ? baseUrl : "";
};
AuthClient.prototype.login = function (auth) {
var _this = this;
var url_ = this.baseUrl + "/api/v1/auth/login";
var content_ = JSON.stringify(auth ? auth.toJS() : null);
return this.http({
url: url_,
method: "POST",
data: content_,
transformResponse: [],
headers: {
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json; charset=UTF-8"
}
}).then(function (response) {
return _this.processLogin(response);
}, function (response) {
if (response.status)
return _this.processLogin(response);
throw response;
});
};
...}());
exports.AuthClient = AuthClient;
In meinem Winkel Code, den ich tue:
var client = AuthClient('http://localhost:14959/');
var call = client.prototype.login(data);
Ich habe bereits die Anwendung gedebuggt und es tritt in der Funktion AuthClient und ich habe auch versucht, es so zu ändern, aber das Problem weiterhin besteht:
function AuthClient($http, baseUrl) {
this.baseUrl = baseUrl;
};
ich erhalte auch diesen Fehler: Uncaught ReferenceError: exports is not defined
ich weiß nicht, ob es etwas mit ihm zu tun oder nicht. Wenn nicht einfach ignorieren.
Fehler-Trace:
TypeError: Cannot set property 'baseUrl' of undefined
at AuthClient (RenterLogApiBackendClient.js:19)
at b.$scope.login (HomeController.js:16)
at fn (eval at compile (angular.min.js:1), <anonymous>:4:206)
at b (angular.js:16123)
at e (angular.js:26490)
at b.$eval (angular.js:17913)
at b.$apply (angular.js:18013)
at HTMLFormElement.<anonymous> (angular.js:26495)
at HTMLFormElement.dispatch (jquery-3.1.1.min.js:3)
at HTMLFormElement.q.handle (jquery-3.1.1.min.js:3)
Wie gesagt, habe ich nur folgendes versucht: function AuthClient ($ http, baseUrl) { this.baseUrl = baseUrl; }; und bekam den gleichen Fehler –
Der Vorschlag ist rückwärts; sollte 'this.baseUrl = baseUrl || sein ""; ". – mc10
@ RuiQueirós Ja, das ist, weil Sie zwei Parameter in 'AuthClient' haben. Definieren Sie stattdessen eine andere Methode innerhalb 'AuthClient' mit' baseUrl' als Parameter. AN und rufen Sie diese Methode für den 'Post' Aufruf –