gpt4 book ai didi

javascript - 使用 $httpBackend 捕获各种请求

转载 作者:行者123 更新时间:2023-11-30 08:02:56 26 4
gpt4 key购买 nike

我正在尝试为我正在使用 Angular JS 构建的应用程序模拟后端。

我有以下代码来模拟成功的登录请求:

// Login
$httpBackend.when('PUT','/v1/token/',{
'domain' : 'farmers',
'username' : 'user',
'password' : 'test'
}).respond({
'token' : 'lalskdfjlskadjfklsadjf'
});

当然,这只有在我传递我在此处定义的确切对象时才有效。

我想知道如何更改它以接受对 /v1/token/ 的所有 PUT 请求,而不管传递的数据集如何。然后它应该检查传递的任何数据以查看它是否与上面说明的结构匹配,然后返回 token 或失败消息。

这可能吗?

更新:所以我正在尝试让它工作。我将一个函数作为 .respond() 函数的参数,以尝试预测可能传递的不同数据集。

Javascript

// Login
$httpBackend.when('PUT','/v1/token/').respond(function (method, url, data, headers) {
var validLogin = {
'domain' : 'farmers',
'username' : 'user',
'password' : 'test'
};

if ( data !== validLogin ) {
return {
result : 'fail'
};
} else {
return {
'token' : 'lalskdfjlskadjfklsadjf'
};
}
});

虽然这根本不起作用。现在无论我通过什么,我都会收到一个未定义的错误:

undefined error in Chrome

最佳答案

我认为您持续存在的问题源于您从response 方法返回的内容。这对我有用:

$httpBackend.when('PUT','/v1/token/')
.respond(function(method, url, data, headers) {
var validLogin = {
'domain' : 'farmers',
'username' : 'user',
'password' : 'test'
};

if ( data !== JSON.stringify(validLogin)) {
return [400, {failure: 'bad'}]
} else {
return [200, {token: '12345'}]
}
});

请注意我是如何返回值数组的(在文档中有描述)。

Working Plunker (无论是否返回token,测试都通过——你需要查看控制台)

关于javascript - 使用 $httpBackend 捕获各种请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com