我在這個問題上讀過的所有帖子都是因爲傳遞的對象包含其他對象而不是原始值。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"
}
你的問題可能是'成功:警報'行。你爲什麼這樣做?嘗試做成功:功能(數據){警報(數據); }' –
@RocketHazmat你是對的,但那有點奇怪,因爲它以前很好。它們應該是等價的。無論如何,謝謝。 – KthProg
@KthProg:主機提供的功能不一定是真正的功能,跨瀏覽器。一般最好把它們包起來。 –