加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在AngularJS $httpBackend ExpectGET中使用正则表达式

发布时间:2020-12-17 07:37:02 所属栏目:安全 来源:网络整理
导读:我在一个$资源GET请求中传递一个url作为参数. Angular是url编码此参数,并且匹配$httpBackend.expectGET方法中的请求是finicky. 我看到您可以使用正则表达式来匹配预期的请求,但无法使其正常工作.我想匹配资源位置,但与任何“uri”查询字符串参数值匹配. 按Ct
我在一个$资源GET请求中传递一个url作为参数. Angular是url编码此参数,并且匹配$httpBackend.expectGET方法中的请求是finicky.

我看到您可以使用正则表达式来匹配预期的请求,但无法使其正常工作.我想匹配资源位置,但与任何“uri”查询字符串参数值匹配.

按Ctrl

var resource = $resource('../api/lookup');
resource.get({ uri: "http://www.something.com" },function (data) {
  // do something
});

测试

// mock out the $httpBackend response

$httpBackend.expectGET(/../api/lookup?uri=.*/)).respond(200,{ Response: "a response" });

// call my test method here

// ensure the $httpBackend work is done
$rootScope.$apply();
$httpBackend.flush();

// do assertions

业绩输出

Error: Unexpected request: GET ../api/lookup?uri=http%3A%2F%2Fwww.something.com

Expected GET /../api/lookup?uri=.*/

任何人都可以看到为什么我的正则表达式不匹配?

编辑

即使改进正则表达式,建议我无法使用’$var’注入语法来获取这个工作.我重写了测试,注入注入功能的依赖关系,并确保我的测试安排的顺序是正确的.现在它的工作就像一个魅力!

你需要摆脱正则表达式中的问号.

不用转义它,你只是将标记标记为可选项.

> test = "../api/lookup?uri=http%3A%2F%2Fwww.something.com";

> test.match(/../api/lookup?uri=.*/);
null

> test.match(/../api/lookup?uri=.*/);
["../api/lookup?uri=http%3A%2F%2Fwww.something.com"]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读