我正在尝试访问我正在处理的REST API
。此应用程序的客户端是AngularJS
网站。
调用REST API
时出现以下错误
Http请求配置url必须是字符串或$ sce信任 宾语。收稿日期: { “方法”: “GET”, “URL”: “http://localhost:51615/api/Call/2/ {\” 请求\ “:\” INIT \ “}” ...}}
我正在使用的代码是:
var json = JSON.stringify({
Request: 'INIT'
}),
req = {
method: 'GET',
url: 'http://localhost:51615/api/Call/2/' + json,
headers: {
'Content-Type': 'application/json'
}
}
console.log('req : ', req)
$sce.trustAsResourceUrl(req.url)
$http.get(req)
.success(function (response) {
console.log(response)
})
.error(function (error) {
console.error(error)
});
错误告诉我$http
url必须是一个字符串,但据我所知。那可能是什么问题?
答案 0 :(得分:1)
req
显然是一个对象。请尝试使用req.url
。您可以将配置对象(req
)作为第二个参数传递为the documentation explains。
$http.get(req.url /*String*/, req /*object*/).then()
请注意,不需要告诉angular请求方法,它已经进入$http.get
。所以你的代码会像这样工作
var json = JSON.stringify({
Request: 'INIT'
}),
config = {
headers: {
'Content-Type': 'application/json'
}
},
url = 'http://localhost:51615/api/Call/2/' + json;
$http.get(url, config)
.then(successCallback, errorCallback);
我也不确定发送字符串的get请求中的application / json标头是否是您想要的,但这是另一个故事。
另一种方法是不使用请求的速记,在这种情况下,您可以将您创建的对象(req)传递给$http()
:
$http(req)
.then(s, e);