Ich verwende derzeit eine Google Map mit einem Fusion Table Layer. Mit dieser Map mache ich AJAX-Abfragen, die die Karte bevölkern, und eine Liste mit Ergebnissen.Was bewirkt, dass maps.googleapis.com/maps/vt einen Fehler von 400 zurückgibt?
Kürzlich gab es ein Problem mit der Google Map API-Antwort, die als Fehler 400 "Malformed Request" zurückgegeben wurde. Diese Reaktion tritt sporadisch auf, wenn die Karte mit einer neuen Ergebnismenge gefüllt wird, nachdem Filter festgelegt und über AJAX gesendet wurden. Als ich den Fehler der Debugging-Konsole von Firefox auscheckte, bemerkte ich, dass der pb-Parameter das Problem sein könnte. Das Problem ist, dass ich unsicher bin, was genau an diesem Parameter falsch ist.
Hier ist die GET-Anfrage, die Fehler aus:
https://maps.googleapis.com/maps/vt?pb=[...insert_param_code_here...]&callback=_xdc_._n2pwun&token=20077
klebte ich, was ich sehe unten an der pb Parameter zugeordnet. Dies wird gesendet, wenn eine der 'ungültigen' Abfragen durchgeführt wird.
"!1m4!1m3!1i13!2i2042!3i3139!1m4!1m3!1i13!2i2043!3i3139!1m4!1m3!1i13!2i2042!3i3140!1m4!1m3!1i13!2i2042!3i3141!1m4!1m3!1i13!2i2043!3i3140!1m4!1m3!1i13!2i2043!3i3141!1m4!1m3!1i13!2i2042!3i3142!1m4!1m3!1i13!2i2042!3i3143!1m4!1m3!1i13!2i2043!3i3142!1m4!1m3!1i13!2i2043!3i3143!1m4!1m3!1i13!2i2044!3i3139!1m4!1m3!1i13!2i2045!3i3139!1m4!1m3!1i13!2i2046!3i3139!1m4!1m3!1i13!2i2044!3i3140!1m4!1m3!1i13!2i2044!3i3141!1m4!1m3!1i13!2i2045!3i3140!1m4!1m3!1i13!2i2045!3i3141!1m4!1m3!1i13!2i2044!3i3142!1m4!1m3!1i13!2i2044!3i3143!1m4!1m3!1i13!2i2045!3i3142!1m4!1m3!1i13!2i2045!3i3143!1m4!1m3!1i13!2i2046!3i3140!1m4!1m3!1i13!2i2046!3i3141!1m4!1m3!1i13!2i2046!3i3142!1m4!1m3!1i13!2i2046!3i3143!2m21!1e2!2sft:tableID!4m2!1ssg!2s%20Cities_With_Charters%20%3D%20'East%20St.%20Louis%20Area'%20AND%20Students_Served%20LIKE%20'%25'%20AND%20School_Type_Dropdown%20IN%20('Charter')%20ORDER%20BY%20School_Name%20ASC!4m2!1ssc!2sSchool_Info_ID%2C%20CPS_ID%2C%20RCDTS%2C%20School_Name%2C%20Street_Address%2C%20City%2C%20State%2C%20Zip%2C%20Phone%2C%20Website%2C%20Lat%2C%20Long%2C%20Year_Opened%2C%20School_Description%2C%20District_Info_ID%2C%20District_Name%2C%20Charter_Renew_YR%2C%20Network_ID%2C%20Network%2C%20Community_Area%2C%20State_Rep_District%2C%20State_Sen_District%2C%20Ward_Remapped%2C%20Grades_Served%2C%20Grades_Capacity%2C%20Serves_ES%2C%20Serves_HS%2C%20Serves_MS%2C%20Serves_Dropouts%2C%20School_Type_Dropdown%2C%20School_Type_Color%2C%20School_Type_Display%2C%20Profile_Type%2C%20SQRP_Rating%2C%20SQRP_Profile%2C%20Cities_With_Charters%2C%20Link_IIRC%2C%20Students_Served!4m2!1ssq!2s'School_Type_Color'%20%3D%20'GREEN'$'School_Type_Color'%20%3D%20'ORANGE'$'School_Type_Color'%20%3D%20'BLUE'$'School_Type_Color'%20%3D%20'MAGENTA'!4m2!1sc!2si:grn_blank$i:orange_blank$i:ltblu_blank$i:purple_blank!4m2!1sy!2s2!4m2!1stmplt!2s2!5i1!3m3!2sen-US!3sUS!5e18!4e3!12m1!5b1"
Hier ist die Abfrage, ohne URL-Codierung nur als Referenz:
SELECT School_Info_ID, CPS_ID, RCDTS, School_Name, Street_Address, City, State, Zip, Phone, Website, Lat, Long, Year_Opened, School_Description, District_Info_ID, District_Name, Charter_Renew_YR, Network_ID, Network, Community_Area, State_Rep_District, State_Sen_District, Ward_Remapped, Grades_Served, Grades_Capacity, Serves_ES, Serves_HS, Serves_MS, Serves_Dropouts, School_Type_Dropdown, School_Type_Color, School_Type_Display, Profile_Type, SQRP_Rating, SQRP_Profile, Cities_With_Charters, Link_IIRC, Students_Served FROM tableID WHERE Cities_With_Charters = 'East St. Louis Area' AND Students_Served LIKE '%' AND School_Type_Dropdown IN ('Charter') ORDER BY School_Name ASC
Die Schritte, die ich bisher gemacht habe, dies zu beheben:
- sicher zu machen jede Abfrage-String gesendet Fusion Tables wurde mit URL-Codierung gesendet.
- Stellen Sie sicher, dass Sie meine Anführungszeichen und Anführungszeichen überprüfen, und stellen Sie sicher, dass in der gesendeten Abfrage keine verirrten Elemente vorhanden waren.
- Meine Google Map-Initialisierungsparameter überprüft, um sicherzustellen, dass ich keine Tippfehler mache oder nicht vorhandene Parameter hinzufüge.
Gibt es noch andere Vorsichtsmaßnahmen ich dafür, dass fehlerhafte Inhalt fehlt bin nicht gesendet?
Wo wird die GET-Anforderung dokumentiert? – MrUpsidown
Ich bin mir nicht sicher. Ich habe versucht, zu suchen, ob es bereits Dokumente gibt, und ich habe nichts Bestimmtes gefunden. Das Einzige, was ich bisher weiß, ist, dass es von Google als Reaktion auf das Auffrischen oder Neuladen einer Karte oder ihrer Layer gesendet wurde. – Kiwithing
Ich habe mich am Ende mit Google in Verbindung gesetzt und einen Fehlerbericht auf Anregung seiner Unterstützung eingereicht. Ich hatte einige Kollegen, die sich das ansehen, und einige sagten, dass es etwas mit der Länge der Zeichen/Abfragen zu tun hat. Andere sagten, dass es kein wirkliches Muster gibt, wenn das Problem auftritt. Andere hatten Probleme, das Problem konsistent zu reproduzieren . – Kiwithing