https://localhost/***/api/get**.php?TOKEN=??? 的 Http 失败响应:0 未知错误
Http failure response for https://localhost/***/api/get**.php?TOKEN=???: 0 Unknown Error
我正在为我的业务开发一个新应用程序,我需要将我的 php 网络应用程序转换为移动应用程序。
我在尝试从我的 php 文件中获取 json 数据时遇到问题,该文件是 :
<?php
header("Access-Control-Allow-Credentials: true");
header("Content-Type: application/json; charset=utf-8");
header("Access-Control-Allow-Origin: *");
$api = true; // this is to bypass redirection to login screen
require(__DIR__ . '/../autoload.php');
if (isset($_GET['TOKEN']) && $_GET['TOKEN'] = '???') {
.... // Some code to get my values
$res = array();
.... // more code to get the values
echo json_encode($res);
}else{
die('Invalid token');
}
我一直在使用 https://jsonplaceholder.typicode.com/todos/1 在我的 ts 文件中测试 httpclient
它正在工作。
这是我的 ts 文件:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
orders: any[] = [];
constructor(private http: HttpClient) {}
ngOnInit() {
this.getOrders().subscribe((value) => {
for (let key in value) {
console.log(value[key]);
console.log(key);
this.orders.push({
shop: key,
orders: value[key],
});
}
});
}
getOrders() {
console.log('function run 2');
return this.http.get(
'https://localhost/???/api/get???.php?TOKEN=???',
{}
);
}
}
在带有 ionic serve
的浏览器上,它与我的本地主机 api 一起工作就像一个魅力,但是当我 运行 ionic cordova run android --prod -l --consolelogs
它只与 json 一起工作占位符测试 api 而不是我的本地主机 api
您认为问题出在我的 php 文件的 headers 设置、我的 get 请求,甚至是存储 php 文件的 wamp localhost?
编辑
我的 ssl 证书似乎无效,但我已经测试了 jsonplaceholder 的相同 api 并且它正在使用 http,我已经尝试将我的 [=服务器上的 33=] 文件是 运行 一个有效的 ssl 证书,但它也没有工作,这就是为什么我安静地迷失了
经过长时间的研究,我找到了解决这个问题的方法(至少绕过):
我刚刚使用我的 运行 或 serve 函数与 --external 并使用我的 public ip 调用我的 php 文件来为我的项目提供服务(与我的本地主机相同我的 php 文件所在的 ip。
我正在为我的业务开发一个新应用程序,我需要将我的 php 网络应用程序转换为移动应用程序。
我在尝试从我的 php 文件中获取 json 数据时遇到问题,该文件是 :
<?php
header("Access-Control-Allow-Credentials: true");
header("Content-Type: application/json; charset=utf-8");
header("Access-Control-Allow-Origin: *");
$api = true; // this is to bypass redirection to login screen
require(__DIR__ . '/../autoload.php');
if (isset($_GET['TOKEN']) && $_GET['TOKEN'] = '???') {
.... // Some code to get my values
$res = array();
.... // more code to get the values
echo json_encode($res);
}else{
die('Invalid token');
}
我一直在使用 https://jsonplaceholder.typicode.com/todos/1 在我的 ts 文件中测试 httpclient 它正在工作。 这是我的 ts 文件:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
orders: any[] = [];
constructor(private http: HttpClient) {}
ngOnInit() {
this.getOrders().subscribe((value) => {
for (let key in value) {
console.log(value[key]);
console.log(key);
this.orders.push({
shop: key,
orders: value[key],
});
}
});
}
getOrders() {
console.log('function run 2');
return this.http.get(
'https://localhost/???/api/get???.php?TOKEN=???',
{}
);
}
}
在带有 ionic serve
的浏览器上,它与我的本地主机 api 一起工作就像一个魅力,但是当我 运行 ionic cordova run android --prod -l --consolelogs
它只与 json 一起工作占位符测试 api 而不是我的本地主机 api
您认为问题出在我的 php 文件的 headers 设置、我的 get 请求,甚至是存储 php 文件的 wamp localhost?
编辑
我的 ssl 证书似乎无效,但我已经测试了 jsonplaceholder 的相同 api 并且它正在使用 http,我已经尝试将我的 [=服务器上的 33=] 文件是 运行 一个有效的 ssl 证书,但它也没有工作,这就是为什么我安静地迷失了
经过长时间的研究,我找到了解决这个问题的方法(至少绕过):
我刚刚使用我的 运行 或 serve 函数与 --external 并使用我的 public ip 调用我的 php 文件来为我的项目提供服务(与我的本地主机相同我的 php 文件所在的 ip。