Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript URLSearchParams附加额外的&;到url参数Angular2+;Ionic2_Javascript_Angular_Ionic2 - Fatal编程技术网

Javascript URLSearchParams附加额外的&;到url参数Angular2+;Ionic2

Javascript URLSearchParams附加额外的&;到url参数Angular2+;Ionic2,javascript,angular,ionic2,Javascript,Angular,Ionic2,所以,这是我在stackoverflow上的第一篇文章,所以如果我没有足够努力地搜索,请原谅我,但是 我正在我们公司的Ionic2+Angular2应用程序上建立一个简单的登录页面。登录表单向我们的后端发出一个http调用,如果用户的凭据正确,它会用用户的凭据进行响应,如果用户没有收到401错误,则允许用户进入主页 昨晚,当我在一台windows机器上完成接线时,一切都很好。然而,在工作中我们使用Mac,因此当我运行android和/或ionic serve-lab时,api调用没有正确地附加参

所以,这是我在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;
}