我有一个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))
任何想法会导致这种行为?
答案 0 :(得分:1)
只有在将以下代码插入config.xml后在PC浏览器上测试应用代码时,才会出现跨域问题。
<access origin="*" />
无论如何,你的代码似乎是正确的。 我的建议是你可以尝试以下步骤。
(1)不发布您的图片并检查文本数据是否可以很好地发布。
(2)使用phonegap&#34; Filetransfer&#34;发布数据包括图像。