我有以下客户端代码来从手机上传图像
$("#placeorder").click(
function() {
if ($('#placeorderform').valid()) {
var formData = $('#placeorderform').serialize();
formData += "&uploaded="+ imgData;
$.ajax({
type : "POST",
url : _host+ "/addorder.php",
data : formData,
dataType : 'jsonp',
success : onSuccess,
error : onError
});
}
});
服务器端 PHP(不工作)
$encodedData = str_replace(' ','+',$_POST['uploaded']);
服务器端 PHP($_REQUEST 或 $_GET 有效;但适用于小图像)
$encodedData = str_replace(' ','+',$_REQUEST['uploaded']);
我的客户端代码有什么问题。
其他观察结果:
我尝试检查请求 header ,发现了令人惊讶的结果。当我在浏览器中执行上述 ajax 操作时,数据会在 POST 中收到。但从 Phonegap 内部,即使明确提及类型:“POST”,数据也会以 GET 形式接收。
有人可以解释一下这些行为吗:(我的 Phonegap 配置有问题吗?
最佳答案
所以我得到了这个工作...令人惊讶的发现!!!
当我将 dataType: 'jsonp' 更改为 ('json' 或 'text') 时,表单数据将在 $_POST 中通过。
仅当 dataType: 'jsonp' 时,由于某些未知原因,表单数据会通过 $_GET 或 $_REQUEST
不知道为什么会发生这种情况;但现在我的问题已经通过“json”解决了。
关于jquery - Phonegap,jQuery ajax 帖子不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10784479/