簡體   English   中英

HTTP API調用PHP后端的SPDY_PROTOCOL錯誤

[英]SPDY_PROTOCOL error on HTTP API call to PHP backend

我有一個帶有PHP + mysql數據庫后端的Ionic 4應用程序。 我使用XAMPP在本地開發和測試。 最近,我已將我的后端遷移到webhost。 通過POSTMAN進行測試時,呼叫正確完成。 但是,當在Ionic中創建HTTP調用時,我總是會收到錯誤。 在chrome中,它看起來像這樣: SPDY_ERR Chrome

在IE中,發生完全相同的錯誤。

我的PHP后端使用以下行啟用了CORS:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, authorization"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

Angular中的調用看起來像這樣:

let apiUrl = 'https://xxxxxxxx.000webhostapp.com/index.php/';

@Injectable({
  providedIn: 'root'
})
export class ApiService {

  constructor(public http: HttpClient) { }

  postData(data, type) {
    return new Promise((resolve, reject) => {
      const httpOptions = {
        headers: new HttpHeaders({
          'Content-Type': 'application/json'
        })
      };

      this.http.post(apiUrl + type, JSON.stringify(data), httpOptions).subscribe(res => {
        resolve(res);
      }, (e) => {
        reject(e);
      });
    });
  }

  ...

最后,Chrome中失敗請求的標頭,如果有用的話:

在此輸入圖像描述

一些谷歌搜索告訴我,這很可能是與CORS相關的錯誤。 我覺得很奇怪但是,使用POSTMAN,調用工作完美,但通過應用它不會,即使我使用相同的標題,URL和正文。

任何幫助都非常感謝。

謝謝

對於遇到此問題的任何人,我通過切換主機來修復此問題。 正如你在OP中看到的那樣,我在000webhost上設置了所有內容。 與上述配置相同的付費主機為我修復了它。 在生成SSL證書時,他們有不同的方法,我只是假設這是原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM