禁断の応答になります。私がionic serveを実行するとうまくいきます。しかし、私がを実行すると、イオン実行のanroid私のデバイス上でそれを実行すると、それは私に403(禁じられた)応答を与える。は、私はちょうど私のIONIC 2プロジェクトでのHTTP POST呼び出しを行うにしようとしています
これは
- 実行コルドバのプラグインのようなコルドバ-plugin-を追加します。httpコールは、私はいくつかのことを試してみました。この問題を克服するために
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; } } }
を行われた私のPaymentService.tsありますホワイトリスト
- を追加しました私の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'">
- これに続きますリンク - >https://github.com/apache/cordova-plugin-whitelist指定された属性を持つ
<access origin>
<allow-intent>
、<allow-navigation>
、*などのタグを追加します。 - はここhttp://blog.ionic.io/handling-cors-issues-in-ionic/
で述べたようにproxyUrlを追加しようとしたが、私の場合は、何も上記のソリューションが動作しません。
私は私のAndroidデバイスからポストコールを打つとき、私は、次のエラーレスポンスを取得:いくつかの解決策と
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
誰でも:
{"_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"}
を私はイオンの情報を、以下がありますか?
ありがとうございます。
はい、私は正しいヘッダを送信しています:あなたは、「ファイル///」要求を認識するために、サーバー側のCORSフィルタを変更する必要があり、この問題を解決するために
。同じ要求がionic serve(ブラウザ)でうまく動作していますが、** ionic run android **(実際のデバイスではありません) 私は上記の例を試しましたが、同じ問題を試みました –
Try ionic runアンドロイド-l -s -c'それはまた 'クロムがあるあなたに、より良いコンソールログを与える:// inspect'、そこにデバイスのため – flakerimi
はい、私が試してみました@flakerimi'クロムを検査している。すでに// inspect'が、それはありますあまり役に立たない実際には、問題はorigin:file:// 'のためです。これはサーバー側からは許可されていません。 –