Ionic-App und server-post: Acces-Control-Allow-Origin
Ich bin ziemlich neu in angularJs, in meinem ionic-app, die ich versuche zu senden, einen json auf meinen server, das ist der controller:
JS:
`enter code here`.controller('DashCtrl', ['$scope','$http',function($scope, $http) {
$scope.formData = {};
$scope.sendForm = function(){
$http({
method : 'POST',
url : 'http://www.---.org/appForm.php',
data : JSON.stringify($scope.formData), //pass in data as strings
headers : {'Access-Control-Allow-Origin':'*'}
})
.success(function(data) {
console.log(data);
if (!data.success) {
//if not successful, bind errors to error variables
$scope.errorName = data.errors.name;
$scope.errorSuperhero = data.errors.superheroAlias;
} else {
//if successful, bind success message to message
$scope.message = data.message;
}
});
};
aber wenn ich senden Sie meine post, die Konsole zeigt mir diese Fehlermeldung:
-[Error] Failed to load resource: Herkunft htt.. ist nicht erlaubt, Access-Control-Allow-Origin. (appForm.php Linie 0)
-[Fehler] XMLHttpRequest cannot load htt.. Herkunft http://localhost:8100
ist nicht erlaubt, Access-Control-Allow-Origin. (localhost, Zeile 0)
Ich versuche dieses .htaccess in meinem home-Ordner:
Header hinzufügen Access-Control-Allow-Origin "*"
Header hinzufügen Access-Control-Allow-Header "origin", "x-requested-with "content-type"
Header hinzufügen Access-Control-Allow-Methoden "PUT, GET, POST, DELETE, OPTIONS"
aber das hinzufügen weiterer Fehler:
-Failed to load resource: the server responded with a status of 500 (Internal Server Error).
Werde ich verrückt! hat jemand eine Idee?!vielen Dank für die Aufmerksamkeit
- Ist es stacktrace Fehler in Ihren server-log? Error 500 ist ein server Fehler.
- Haben Sie versucht, ändern Sie die Einstellungen in der
config.xml
Datei<access origin="*"/>
sich in Ihrem android-Projekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einen service-proxy, um Ihre
ionic.project
Datei.Überprüfen Sie den relevanten Teil in https://github.com/driftyco/ionic-cli
Kommandozeile öffnen man im chrome-Verzeichnis in meinem Fall:
Typ :
chrome.exe --disable-web-security
in Ihrem Browser gehen, um
http://localhost:8100
, und Ihr problem wird gelöst werdenCross-origin-Problem, das müssen wir ausdrücklich Griff ionic-framework, die während der Entwicklungsphase.
Hier ist ein guter blog-Seite von ionic team, das enthält die vollständigen Einzelheiten des Problems
Auf hohem Niveau:
Schritt 1 : Fügen Sie die proxy-details zu ionic.Projekt
Schritt 2 : Als "gute Praxis", fügen Winkel konstant zu verwalten externer Endpunkte - Das ist nicht zwingend
Schritt 3: Starten Sie "ionic serve". Ohne Neustart Ionischen.Projekt änderungen nicht wirksam.