Zum Inhalt springen

AJAX Call phenomen :D


Empfohlene Beiträge

Hallo liebe Leudde ,

ich hätt da mal ne frage an so einem schönen Morgen .....

Ich habe ein projekt , wo eine Website erstellt wurde unter anderem mit Java und die auch mehrere Ajax Funktionen aufruft. Das ganze kommuniziert mit php´s auf nem Server mit einem weiteren Webdienst welcher mir dan die gewünschten Infos übermittelt. So erstmal das ihr in etwas wisst was ich da treibe. Nun zum eigentlichen.

Also die Sache ist die: Ich habe einen Code (js) , 2 PHP´s und 2 Server.

Lasse ich nun die Seite auf dem Testserver laufen, funktioniert alles einwandfrei. Alles so wie ich es wollte und wie es sein sollte.

Probier ich das nun , mit exakt dem selben Code( natürlich sind URL´s , ElementID´s und weiteres angepasst) und den selben PHP´s auf dem Liveserver , schmiert es mir schon nach dem ersten AJAX request ab.....

Bin das ganze schon mit meinem Ausbilder durchgegangen, alle codes ud scripts sind passend geschrieben, und funktionieren wie schon erwähnt auf dem Testserver ohne Probleme.

Mich würde das jetzt einfach mal rein aus Neugier interessieren , wie sowas zustande kommen kann ?

Ich meine ein passender Vergleich wäre:

Ich fahre beim Autohändler 2 Fahrzeuge vom selben Modell , selbes Baujahr , selbe Fabrik also sprich zu 1000% identisch und alles läuft einwandfrei.

Nach dem Kauf funktioniert aber nur einer von den beiden, ohne irgendwelche Schäden, Veränderungen etc. pepe...

Sehr strange Sache würd ich mal sagen :cool:

Freue mich schon auf euere Gedankenergüsse..... :beagolisc

<script>


    function myCall() {

        serialno= document.getElementById('answer872443X31X168').value;

        var Url = "http://212.77.190.105/lime/SerialNo.php?serial="+serialno; 

        var request = $.ajax({

            url: Url,

            type: "GET",       

            dataType: "xml",

            success: onSerialNoCheckComplete,


        });


		function onSerialNoCheckComplete(xml)

{



		$(xml).find('ArrayOfDetails').each(function(){


		window.model = $(this).find('ModelNumber').text();

		window.serial = $(this).find('SerialNumber').text();


		if (model) {

				$("#question282 input.radio:last").click();



}

			else { $("#question282 input.radio:first").click();

			javascript_abort();

}		


function javascript_abort()

{

   throw new Error('This is not an error. This is just to abort javascript');

}

});



Product();


};


function Product() {

      var serialnum= serial;

      var modelno= model;

       var Url2 = "http://212.77.190.105/lime/Product.php?serial="+serialnum+"&model="+modelno; 

        var request = $.ajax({

            url: Url2,

            type: "GET",       

            dataType: "xml",

            success: SerialNoCheckComplete,


        });


	function SerialNoCheckComplete(xml)

{



			$(xml).find('ProductDetails').each(function(){

			var productname = $(this).find('ProductName').text();

			var name = $(this).find('ProductCategory').text(); 

			var Warrdate = $(this).find('StdWarrEndDate').text();   

			var Servicedate = $(this).find('ServiceEndDate').text(); 

			var Datum = new Date();

			var Tag = Datum.getDate();

			var Monat = Datum.getMonth() + 1;

			var Jahr = Datum.getFullYear();

			var Full = Jahr +"-"+ Monat +"."+ Tag;


			$("#question204 input.radio:first").click();


			if ( Warrdate > Servicedate) {

				var lastdate = Warrdate;}

			else {

				var lastdate = Servicedate;}




			if (lastdate > Full) {

				$("#question174 input.radio:first").click();}

			else {

				$("#question174 input.radio:last").click();;}


			if (name === 'Portable') {

				$("#question177 input.radio:first").click();}

			else { }










});






};



    };



    };

	</script>

Bearbeitet von king_and1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Gewöhn doch du dir nen nicht normalen Schreibstil an. Mir vergeht bei "Gewoehn" schon alles bei dir :D

Nicht jede meiner Tastatur hat auch Umlaute. Da ist manchmal ein oe schon ganz hilfreich.

Kannst du mal bitte Konfigurationen der Server, sowie Fehlermeldungen mitteilen?

Sehr strange Sache würd ich mal sagen :cool:

Nö, Fehlersuche gehört zum täglichen Business. Und mein Business ist nicht strange.

Freue mich schon auf euere Gedankenergüsse..... :beagolisc

Keine Ergüsse kurz vor Feierarbeit. Eventuell Anstösse bei der Hilfe zur Selbsthilfe.

Ein Leudd.

*So Feierabend*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Lasse ich nun die Seite auf dem Testserver laufen, funktioniert alles einwandfrei. Alles so wie ich es wollte und wie es sein sollte.

Probier ich das nun , mit exakt dem selben Code( natürlich sind URL´s , ElementID´s und weiteres angepasst) und den selben PHP´s auf dem Liveserver , schmiert es mir schon nach dem ersten AJAX request ab.....

Wenn es auf dem Testserver funktioniert, tippe ich mal auf deine Anpassungen.

Hast du die PHP Dateien überprüft (passen die auch so für den Liveserver).

Ist auf dem Liveserver ein anderer Webserver installiert/ist die Config identisch zum Testserver.

PS: JavaScript ist kein Java!

Edit: Bekommst du irgendwelche Fehlermeldungen?

Edit:


			if (name === 'Portable') {

				$("#question177 input.radio:first").click();}

			else { }

warum das else?

Bearbeitet von Tom87
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich kriege keine Fehlermeldungen , das ist ja eig auch das was mich an dem ganzen am meisten Interessiert. Also mit Firebug zumindest , was anderes habe ich nicht da fürs monitoring.

Die Server sind alle identisch , von der Version , vom Aufbau, plugins , programme und so weiter ist alles gleich.

Die Php´s sind auch alle in ordnung. und angepasst muss an denen aufgrund vom wechsel vom Test in Liveserver nix.

Ins else kommt später eine funktion , da ist aber die Website noch nicht weitgenug aufgebaut.

Meiner Meinung kann das ganze nur am Server selber liegen. Aba da die Hauptursachen schon geprüft wurden und sie mit sicherheit nicht das Fehlverhalten verursachen, würde ich gern wissen weshalb sowas noch auftreten kann ?

Also ob ihr noch andere Gründe des Servers kennt, ausser das da was geändert wurde oder sie nicht übereinstimmen.

Was ich noch dazu erwähnen könnte ist: Das ganze hat vor kurzem auch auf dem Liveserver funktioniert. Seit der Erkenntniss das ich damit soweit wie es momentan möglich ist fertig bin und alles läuft habe ich da nix mehr dran gemacht oder verändert.

Deswegen ist das ganze noch unverständlicher für mich als es eh schon ist :D

Hoffe ich wecke damit auch einwenig Interesse bei euch, da es mir nicht wirklich um Hilfe geht , (Sehr geehrter) a3quit4s.

Also , lasst die Köpfe rauchen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Glaskugel ist irgendwie beschlagen heute. Ich glaube es liegt am Klima:

Kannst du mal bitte Konfigurationen der Server, sowie Fehlermeldungen / Fehlerverhalten mitteilen?

*geschrieben von der Tastatur ohne Umlaute, die ich auch gar nicht brauchte, bis jetzt*

PS: Du merkst vielleicht, dass meine Angaben fuer Dich genauso sinnvoll sind, wie Deine Angaben fuer uns. Ohne Fakten raetseln wir nur.

Sind beide Server bei Dir im Haus? Ist die Anwendung hausintern (Intranet) oder extern (Internet)? Liegen Firewalls vor? Habt Ihr Netzwerk, wo beide Rechner dazugehoeren? Sind beide Server und Webserver identisch konfiguriert (mit identischen Programmversionen)? Gibt es einen speziellen Grund fuer einen Testserver und einen Liveserver? Falls ja, liegen unterschiedliche Daten vor? Sind die Rechte gleichverteilt? Sind beide IP-Adressen anpingbar? ...

Vielleicht als Einstieg soviel, ohne das gleich der Kopf raucht. Fehlersuche kann auch Spass machen, wenn man die Fehler dann findet. Wichtig ist, das grosse Problem (Geht nicht) in viele kleine moegliche Probleme zu unterteilen und diese solange abzugleichen, bis der Fehler eindeutig identifiziert ist und der Admin wieder etwas gelernt hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin moin,

ich kann euch wirklich nicht viel sagen ausser das es beinahe keinen unterschied gibt zwischen dem Test und dem Liveserver. Beide sind identisch konfiguriert und haben auch zu 90% die selben Programme plugins pipapo installiert. Hier läuft alles durch einen DNS server anschliessend durch eine Firewall und eine VPN . Beide Server werden so gehandelt. Beide Server funktionieren, da wie schon erwähnt auf dem Testserver mein Code und unter anderem noch homepages und andere Sachen laufen und auch funktionieren. Auf dem Live server sind momentan unsere eigene Homepage so wie diverse Projekte am laufen. Also beide funktionieren. Zweck der beiden Server ist nur das ausprobieren und das beseitigen von Fehlern auf dem Testserver bevor das ganze dan Live geht.

Komisch ist an dem ganzen , das am Freitag oda Donnerstag , mein "projekt" am Liveserver funktionierte.... Seitdem aber wieder nicht.

Ich möchte hier bitten sich sehr drauf zu konzentrieren, wie und warum ein funktionierendes Projekt ohne Veränderungen nicht mehr funktioniert ?? Es wurde nichts am Server gemacht weder TEst nocht Live und auch nix an PHP´s dem Code oder sonst was .. :/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit Josef Pfleger´s "FORCE CORS" Plugin für Firefox funktioniert das ganze nun. Leider ist das als Lösung nur für mich grade Möglich. (Können ja nicht die späteren User alle zwingen sich das Plugin zu installieren...)

Hat vielleicht jemand anhand der neuen Erkenntnisse ne Idee wie das Problem zu fixxen ist ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hat vielleicht jemand anhand der neuen Erkenntnisse ne Idee wie das Problem zu fixxen ist ?

Ja. Sorge dafür, dass keine Verstöße gegen die SOP vorliegen ;)

JSONP scheidet aus, da hier XML und kein JSOn übetragen wird.

Vielleicht hilft Dir ja das weiter:

https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann ich meinem .js Code einen Header mitgeben oder muss ich das in der angesprochenen PHP machen ?

Habe den Server (Apache) jetzt für CORS konfiguriert:

header('Access-Control-Allow-Origin: *');

header(‘Access-Control-Allow-Methods: POST,GET,DELETE,PUT,OPTIONS’);

header(‘Access-Control-Allow-Headers: X-Authorization,X-Requested-With’);

Leider funktioniert das ganze ohne das FORCECORS Plugin immernoch nicht. Weil im Antwort Header des Request´s keine Access-Control-Allow Header vorhanden sind...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Achso , ja sorry :P .

Also gelöst habe ich das ganze in dem ich "lilith2k3" Tipp gefolgt bin und mich etwas genauer über SOP(Same-Origin-Policy) und über CORS(Cross-Origin Resource Sharing) informiert habe.

Das ganze kann ganz leicht gehandelt werden:

In der config file seines Servers (bei mir Apache) fügt man im Kopf :


header set Access-Control-Allow-Origin: '*'  <-- ( * Steht für "ALLE"; Alternativ zb. "www.example.com" um nur eine Domain zu erlauben)

header Access-Control-Allow-Methods POST,GET,DELETE,PUT,OPTIONS

header Access-Control-Allow-Headers X-Authorization,X-Requested-With

ein. Und anschliessend in der PHP oder HTML datei je nachdem wie man das grade macht, das in den Kopf:

header('Access-Control-Allow-Origin: *');

header(‘Access-Control-Allow-Methods: POST,GET,DELETE,PUT,OPTIONS’);

header(‘Access-Control-Allow-Headers: X-Authorization,X-Requested-With’);

Somit sollte das ganze einwandfrei funktionieren ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...