从Cordova应用程序提交POST请求到Google App Engine根本无法到达服务器

时间:2014-12-08 01:35:10

标签: javascript jquery python google-app-engine cordova

我有一个Cordova应用程序(包含在iOS WebView中的HTML / Javascript文件),它表现出一些奇怪的行为。

我将表单提交到Google App Engine上的python脚本,这有时会起作用,但不是所有时间都有效。当表单包含base64编码图像时,它更有可能无法正常工作。

我的意思是不工作就是它根本无法到达服务器。服务器日志显示没有向" / submit" -handler发出请求。这仅适用于iOS版本的应用程序。 Android版本使用相同的代码可以正常工作。

我最大的怀疑是跨域问题。这是我发送表单的jQuery代码:

$.ajax({
    type: 'POST',
    url: "http://myapp.appspot.com/submit",
    data: submittedEntryString,
    crossDomain: true,
    cache: false
}).done(function(data) {
    console.log(data);
}).fail(function(jqXHR, textStatus, errorThrown) {
    console.log(textStatus);
    console.log(errorThrown);
    console.log(jqXHR.responseText);
});

但是我已将标题添加到我的回复中。我想这是正确的做法(?)

self.response.headers['Access-Control-Allow-Origin'] = '*'
self.write("form submitted! form id is: " + str(s.form_id))

任何想法会导致这种行为?

1 个答案:

答案 0 :(得分:1)

只有在将以下代码插入config.xml后在PC浏览器上测试应用代码时,才会出现跨域问题。

<access origin="*" />

无论如何,你的代码似乎是正确的。 我的建议是你可以尝试以下步骤。

(1)不发布您的图片并检查文本数据是否可以很好地发布。

(2)使用phonegap&#34; Filetransfer&#34;发布数据包括图像。