Tôi chỉ đang cố thực hiện cuộc gọi http trong dự án IONIC 2 của mình. Khi tôi chạy ionic phục vụ nó hoạt động tốt. Nhưng khi tôi chạy ionic chạy anroid để chạy nó trên thiết bị của tôi nó mang lại cho tôi 403 (bị cấm) phản ứng.Thực hiện cuộc gọi HTTP POST trong Ionic 2 cho phản hồi bị cấm
Đây là PaymentService.ts của tôi trong đó gọi http đã được thực hiện
import {Http, Headers, RequestOptions} from '@angular/http';
import 'rxjs/add/operator/map';
import { Injectable } from '@angular/core';
@Injectable()
export class PaymentService {
static get parameters() {
return [[Http]];
}
constructor(private http:Http) {}
postToPaymentApi(data) {
let headers: Headers = new Headers()
headers.set('Content-type', 'application/x-www-form-urlencoded')
let options = new RequestOptions({headers: headers})
var response = this.http.post("http://test/url",data,options).map(res => res.json());
return response;
}
}
}
Để khắc phục vấn đề này tôi đã cố gắng một vài điều, như
- Run cordova cắm thêm cordova-plugin- danh sách trắng
- Đã thêm dòng này vào config.xml
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
- Theo dõi liên kết ->https://github.com/apache/cordova-plugin-whitelist để thêm
<access origin>
dưới dạng *,<allow-navigation>
,<allow-intent>
thẻ có thuộc tính được chỉ định. - Cố gắng thêm proxyUrl như đã đề cập ở đây http://blog.ionic.io/handling-cors-issues-in-ionic/
Nhưng Trong trường hợp của tôi, không có giải pháp trên đang làm việc.
Khi tôi nhấn gọi bài từ thiết bị Android của tôi, tôi nhận được phản ứng lỗi sau:
{"_body":"",
"status":403,
"ok":false,
"statusText":"Forbidden",
"headers":{"Date":["Wed","30 Nov 2016 09:28:53 GMT"],
"Content-Length":["0"]},
"type":2,
"url":"http://test/url"}
Tôi đã sau thông tin ion:
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.12
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.45
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.4
Node Version: v7.2.0
Xcode version: Not installed
Bất cứ ai có một số giải pháp?
Xin cảm ơn trước.
Vâng, tôi đang gửi các tiêu đề chính xác. Các yêu cầu tương tự đang chạy tốt với ionic phục vụ (trên trình duyệt), nhưng không phải với ** ionic chạy android ** (đó là, trên thiết bị thực tế) Tôi đã thử ví dụ trên, nhưng vẫn cùng một vấn đề –
Try' ionic run android -l -s -c' nó sẽ cung cấp cho bạn giao diện điều khiển tốt hơn cũng có 'chrome: // inspect' và có kiểm tra cho các thiết bị – flakerimi
yes @flakerimi Tôi đã thử' chrome: // inspect' rồi, nhưng nó là không giúp đỡ nhiều. Trên thực tế, sự cố là do nguồn gốc: tệp: // 'không được phép từ phía máy chủ. –