Javascript URLSearchParams附加额外的&;到url参数Angular2+;Ionic2
所以,这是我在stackoverflow上的第一篇文章,所以如果我没有足够努力地搜索,请原谅我,但是 我正在我们公司的Ionic2+Angular2应用程序上建立一个简单的登录页面。登录表单向我们的后端发出一个http调用,如果用户的凭据正确,它会用用户的凭据进行响应,如果用户没有收到401错误,则允许用户进入主页 昨晚,当我在一台windows机器上完成接线时,一切都很好。然而,在工作中我们使用Mac,因此当我运行android和/或ionic serve-lab时,api调用没有正确地附加参数。显示:Javascript URLSearchParams附加额外的&;到url参数Angular2+;Ionic2,javascript,angular,ionic2,Javascript,Angular,Ionic2,所以,这是我在stackoverflow上的第一篇文章,所以如果我没有足够努力地搜索,请原谅我,但是 我正在我们公司的Ionic2+Angular2应用程序上建立一个简单的登录页面。登录表单向我们的后端发出一个http调用,如果用户的凭据正确,它会用用户的凭据进行响应,如果用户没有收到401错误,则允许用户进入主页 昨晚,当我在一台windows机器上完成接线时,一切都很好。然而,在工作中我们使用Mac,因此当我运行android和/或ionic serve-lab时,api调用没有正确地附加参
private theUrl = 'http://theurl.com/mobileapi/getUser.cfm?';
public onlogin(email: string, password: string) {
let params: URLSearchParams = new URLSearchParams();
params.set('email', email);
params.set('password', password);
return this.http.get(this.theUrl, { search: params })
.map(res => res.json())
}
此代码使用URLSearchParams设置URL参数,然后将其作为选项直接传递到http.get()
请求中。-我们从前端表单传递电子邮件和密码
现在,当服务/运行应用程序时,API调用的结果如下所示:
http://theurl.com/mobileapi/getUser.cfm?&email=xxxx&password=xxxxx
我感兴趣的是url的.cfm?&部分。我知道打电话的格式不应该是这样的。。。我是否缺少正确格式化url参数的内容
谢谢,因为您的url有
?
->专用url=http://theurl.com/mobileapi/getUser.cfm?';
因此,当Angular构建参数时,它将标记为have param,然后这将在您得到url时附加url
使用此选项:
private theUrl = 'http://theurl.com/mobileapi/getUser.cfm';
阅读此代码的更多内容:
if (search.length > 0) {
let prefix = '?';
if (this.url.indexOf('?') != -1) {
prefix = (this.url[this.url.length - 1] == '&') ? '' : '&';
}
// TODO: just delete search-query-looking string in url?
this.url = url + prefix + search;
}
因为您的url有
?
->私有url=http://theurl.com/mobileapi/getUser.cfm?';
因此,当Angular构建参数时,它将标记为have param,然后这将在您得到url时附加url
使用此选项:
private theUrl = 'http://theurl.com/mobileapi/getUser.cfm';
阅读此代码的更多内容:
if (search.length > 0) {
let prefix = '?';
if (this.url.indexOf('?') != -1) {
prefix = (this.url[this.url.length - 1] == '&') ? '' : '&';
}
// TODO: just delete search-query-looking string in url?
this.url = url + prefix + search;
}