一尘不染

如何在angularjs中将参数传递给$ http?

angularjs

假设我有两个输入框,分别具有对应的ng-model作为fname和lname。如果我将http请求称为:

$http({method:'GET', url:'/search', params:{fname: fname, lname: lname}})

它会调用URL:

/search?fname=fname&lname=lname

我在后端(python)遇到的错误是:

cannot concatenate str and nontype objects.

这些参数不以字符串形式发送吗?如果没有,该如何解决?


阅读 172

收藏
2020-07-04

共1个答案

一尘不染

这是您的操作方式:

$http.get("/url/to/resource/", {params:{"param1": val1, "param2": val2}})
    .then(function (response) { /* */ })...

Angular负责对参数进行编码

Maxim Shoustin的答案不起作用({method:'GET', url:'/search', jsonData}这不是有效的JavaScript文字),而JeyTheva的答案虽然简单,但却很危险,因为它允许XSS(将它们连接在一起时不会逃避不安全的值)。

2020-07-04