我在这个问题上读过的所有帖子都是因为传递的对象包含其他对象而不是原始值。jQuery ajax未捕获TypeError:非法调用
我的数据对象是所有原始值,但它仍然不起作用。
下面的代码:
function ImageUploader(imgEl, params) {
this.imgEl = imgEl;
this.params = params;
this.params["Function"] = "saveImage";
}
// send data from asynchronously uploaded image (as image URI)
// to PHP script which will write data to file
ImageUploader.prototype.uploadImage = function() {
var iu = this;
var fileReader = new FileReader();
fileReader.onload = function (e) {
iu.params["Image"] = e.target.result;
console.log(iu.params);
$.ajax({
type: "POST",
url: "/scripts/php/Form.php",
data: iu.params,
success: alert,
error: function (jqXHR, status, error) {
console.log(error, this);
}
});
};
this.params["FileName"] = this.imgEl.files[0].fileName || this.imgEl.files[0].name;
fileReader.readAsDataURL(this.imgEl.files[0]);
};
下面是一个例子对象,它拒绝:
{
FileName: "Matrix.jpg",
Function: "saveImage",
ID: 10,
Image: "data:image/jpeg;base64,...",
Line: 1,
Name: "Test Form"
}
2015-01-06
KthProg
+1
你的问题可能是'成功:警报'行。你为什么这样做?尝试做成功:功能(数据){警报(数据); }' –
+0
@RocketHazmat你是对的,但那有点奇怪,因为它以前很好。它们应该是等价的。无论如何,谢谢。 –
+1
@KthProg:主机提供的功能不一定是真正的功能,跨浏览器。一般最好把它们包起来。 –