Ich habe einige schwere jQuery-Domain-Probleme gehabt, also habe ich versucht, durch web2py zu umgehen.Abrufen von POST-Daten von Web2py in lokale HTML-Datei
Ich sende POST-Daten von einer lokalen HTML-Datei an meinen web2py-Server. Web2py erstellt dann einen Python-POST auf einem zweiten Server (der das domänenübergreifende Problem löst) und erhält die erwartete Antwort. Wie sollte ich diese Antwort zurück zu meiner lokalen HTML-Datei bekommen?
Ich habe darüber nachgedacht, diese Ergebnisse in einer Datenbank zu speichern und sie dann mit einem URL-Redirect abzurufen-- aber ich bin mir nicht sicher, ob ich raten könnte, welche URL ich benötigen würde. Vielleicht schnapp dir den letzten Eintrag aus der Datenbank.
Oder gibt es eine bessere Methode?
Ich weiß, es gibt wahrscheinlich viel bessere Methoden, um dies direkt aus der ursprünglichen lokalen HTML-Datei zu tun und Web2py vollständig zu umgehen, aber ich bin viel wohler in Python als js.
Also von Ich versuche zu bekommen:
[local html-Datei] -> [POST web2py] -> [POST zu anderen separaten Server] -> [Antwort zurück an lokale HTML-Datei]
Ich kann das letzte Bein nicht herausfinden.
Mein Controller, der Beiträge an den zweiten Server (funktioniert):
def index():
response.headers['content-type'] = 'text/xml'
xml = request.body.read()
query_args = { 'data': xml }
encoded_args = urllib.urlencode(query_args)
url = 'myserver.com'
content = urllib2.urlopen(url, encoded_args).read()
return response.render(dict(content=XML(content)))
meine lokale HTML-Datei Post (Korrekter BEITRÄGE) wie folgt aussieht:
<script language="javascript">
function check()
{
jQuery('.myclass').each(function(){
var txt = $(this).serialize();
$.ajax({
type: 'POST',
url: 'myserver',
data: 'mydata',
statusCode: {
302: function() {
alert("302"); // this is never called
},
200: function() {
alert("200");
},
},
success: function (data, textstatus) {
console.log(data);
},
error: function (data) {
},
});
});
}
</script>