【问题标题】:Cordova build change request url in angular app角度应用程序中的 Cordova 构建更改请求 url
【发布时间】:2019-01-11 20:37:18
【问题描述】:

我的申请有问题。我以角度创建应用程序并用科尔多瓦包装。在android模拟器中请求url是好的,但是当我复制文件并在我的手机中测试时,url是错误的。

我的要求:http://111.111.11.111/myReq - 好

在我的手机上,在 Cordova 构建之后:file:///android_asset/www/null/login -bad

这是我的错误:

POST file:///android_asset/www/null/login net::ERR_FILE_NOT_FOUND

我尝试解决方案:

  1. ng build --prodcordova build --prod
  2. 将文件和目录重命名为小写
  3. 添加行:preference name="loadUrlTimeoutValue" value="60000" 或 70000 到 config.xml

这是我的要求:

userLogin(login: string, password: string): Observable<any> {

    const baseUrl = 'http://111.111.11.111/myReq'

    const httpOptions  = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json',
        'Authorization': 'myToken',
      })
    };

    return this.http.post<any>(`${baseUrl}/login`, JSON.stringify({login, password}), httpOptions);

  }

没有任何效果。我该如何解决?

【问题讨论】:

  • 你能发布你用来发出请求的js/ts代码吗?
  • @SergioRinaudo 我在上面添加的请求
  • 看起来由于某种原因没有评估模板变量,您是否尝试将 url 值作为普通字符串? return this.http.post('111.111.11.111/myReq/login', JSON.stringify({login, password}), httpOptions);
  • @SergioRinaudo 你是对的!当我把正常的字符串一切工作。那么如何放置baseUrl?该值来自登录表单输入

标签: javascript android angular api cordova


【解决方案1】:

由于我的假设是正确的,我将给出一个真实的答案,创建另一个包含将接收 POST 请求的完整 url 的变量

const requestUrl = `${baseUrl}/login` 

return this.http.post<any>(requestUrl, JSON.stringify({login, password}), httpOptions)

如果由于任何原因模板变量不适合你(做一个控制台日志来检查值),只需像下面这样连接两个字符串

const requestUrl = baseUrl + '/login'

return this.http.post<any>(requestUrl, JSON.stringify({login, password}), httpOptions)

【讨论】:

  • 感谢您的帮助!我修好了,问题代替了我的变量。我移动了 baseUrl,一切正常 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多